react2shell-scanner — RSC/Next.js RCE 検出ツール

Security

概要

React Server Components(RSC)を利用した Next.js アプリケーションに影響する既知のリモートコード実行(RCE)脆弱性、CVE-2025-55182 および CVE-2025-66478 を検出するためのコマンドラインツールです。スキャナーは特定の整形された multipart POST リクエストを送信し、レスポンスに含まれるエラーやスタックトレースの痕跡を解析することで、脆弱なサーバーを高い精度で識別します。検出手法に関する技術的背景は Assetnote のブログ記事にて詳述されています。

GitHub

リポジトリの統計情報

  • スター数: 43
  • フォーク数: 5
  • ウォッチャー数: 43
  • コミット数: 2
  • ファイル数: 3
  • メインの言語: Python

主な特徴

  • 高精度検出: 特定のエラーフィンガープリントに基づき誤検知を低減
  • 非破壊的な確認手法: 実行可能なペイロードを投げず、応答解析で判定
  • 軽量実装: Python スクリプト単体(requirements.txt あり)で利用可能
  • CI/自動診断への組み込みが容易な CLI 形式

技術的なポイント

react2shell-scanner の検出アプローチは「誘発 -> 観察 -> 判定」のフローに沿っています。具体的には、RSC/Next.js の脆弱な処理経路でのみ発生する特定のエラー条件を誘発するために、細工された multipart/form-data の POST リクエストを送信します。脆弱なバージョンでは、その処理中に例外やスタックトレース、あるいは特有のレスポンスパターンが返るため、スキャナーはレスポンス本文と HTTP ヘッダを解析してこれらの痕跡を検出します。

この手法の利点は高い「ハイフィデリティ(高忠実度)」です。実際のコード実行を行わず、エラー情報の漏洩を指標としているため、被害を拡大させることなく脆弱性の存在を判定できます。実装面では Python の HTTP ライブラリ(requests 等)を用いており、依存は最小限に抑えられています。requirements.txt に必要パッケージが明記されており、単一の scanner.py を実行するだけで診断が可能です。

運用上の注意点としては、スキャナーはリモートのエンドポイントに対して実際にリクエストを送るため、対象の利用規約や法的同意が必要です。また、パッチ適用済みやプロキシ経由、カスタムエラーハンドラが設定された環境では検出が困難になり、偽陰性(検出漏れ)が発生し得ます。逆に、詳細なエラーメッセージを返す環境では検出が容易になる一方で、情報露出の有無自体が問題となり得ます。Assetnote のブログ記事では検証ケースや検出ロジックの背景が公開されているため、スキャナーの運用前に目を通すことを推奨します。

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • requirements.txt: file
  • scanner.py: file

まとめ

RSC を利用する Next.js の既知 RCE を非破壊的に高精度で検出できる実用的なツール。

リポジトリ情報:

READMEの抜粋:

react2shell-scanner

A command-line tool for detecting CVE-2025-55182 and CVE-2025-66478 in Next.js applications using React Server Components.

For technical details on the vulnerability and detection methodology, see our blog post: https://slcyber.io/research-center/high-fidelity-detection-mechanism-for-rsc-next-js-rce-cve-2025-55182-cve-2025-66478

How It Works

The scanner sends a crafted multipart POST request that triggers a specific error condition in vulnerable versions of React Ser…