ReactGuard — React2Shell(CVE-2025-55182)検出ツール
概要
ReactGuardは、React Server Components(RSC)を利用する環境で報告されたCVE-2025-55182(通称React2Shell)に対する検出ツールです。Pythonで実装されたCLIベースのスキャナで、フレームワークのフィンガープリンティングと脆弱性シグネチャの照合を組み合わせて、対象ホストがどのフレームワークを使っているか、そしてその設定やエンドポイントが既知の脆弱性に晒されているかを判定します。Next.js(14–16)やWaku(0.17–0.27)を主要サポートとし、ExpoサーバーアクションやReact Router、汎用RSC検出は実験的に利用できます。インストールはpipで可能で、CIやスクリプトから簡単に呼び出せる点が特徴です。
リポジトリの統計情報
- スター数: 9
- フォーク数: 1
- ウォッチャー数: 9
- コミット数: 2
- ファイル数: 17
- メインの言語: Python
主な特徴
- CVE-2025-55182(React2Shell)向けのフレームワーク別検出ロジックを提供
- Next.js 14–16、Waku 0.17–0.27 に対する主要検証済みカバレッジ
- CLIでの簡易実行とPythonパッケージ化により自動化・CI統合が容易
- フレームワークフィンガープリンティングと応答解析による確度の高い検出
技術的なポイント
ReactGuardは「フレームワークの特性を踏まえた検出」と「脆弱性に紐づくシグネチャ検査」を組み合わせるアプローチをとっています。まず最初にHTTPベースのプローブを実行して応答ヘッダや既知のエンドポイント、レスポンスボディ中の痕跡(特有のメタタグ、エラーメッセージ、レスポンス構造など)から使用フレームワークをフィンガープリントします。これによりNext.jsやWakuなど各フレームワーク向けの検査ルーチンを選択可能にしています。
検査自体は、フレームワーク固有のエンドポイントやサーバーアクションの挙動を引き出すためのリクエストを送信し、レスポンスのステータス、ヘッダ、ボディ、タイミングを解析する手法を採用します。既知の脆弱性(React2Shell)に対するシグネチャは、リクエストに対する特定の文字列パターンやエラーメッセージ、実行結果の特徴から検出されます。Xintを動力源としている点がREADMEに示されており、Xintを利用した解析・フィンガープリンティングライブラリや既存のシグネチャDBを活用する設計だと読み取れます。
設計面ではモジュール化が重視されており、フレームワーク別の検査ロジックは個別モジュールとして切り離されているため、新たなフレームワークや検査シグネチャを追加しやすくなっています。CLI実行時には対象URLを与えるだけで自動的にプローブ→フィンガープリント→脆弱性チェックのフローが走るため、手動で細かい挙動を指定しなくてもスキャニングが可能です。
また、パッケージはpipでインストール可能(pip install -e . がREADMEに記載)で、CIパイプラインに組み込みやすい点も実務上の利点です。注意点としては、Next.jsやWakuは主要サポートとして検証済みと明記されている一方、ExpoやReact Router、汎用RSC向け検出は「実験的」とされており、誤検知や未検出のケースが残る可能性があるため、運用時は結果の解釈に専門知識が必要です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- README.md: file
- init.py: file
- cli: dir
- setup.cfg / pyproject.toml(推定でパッケージ設定): file(パッケージ化用)
- requirements.txt や依存定義: file(依存ライブラリ管理)
- modules/ または package 内のフレームワーク別検査ロジック: dir(フレームワーク固有チェック)
- tests/(存在すれば): dir(テストコード)
- docs/(ある場合): dir(ドキュメント)
- scripts/(補助スクリプト): file/dir
- その他ユーティリティファイル(HTTPクライアント、シグネチャDB等): file
…他 12 ファイル
(※実際のリポジトリにはcliディレクトリや複数のPythonモジュールが含まれており、エントリポイントとしてCLI実装とフレームワーク検出・脆弱性チェックモジュールが確認できます。)
まとめ
RSC環境向けの実用的なReact2Shell検出ツール、Next.js/Wakuが特に充実。
リポジトリ情報:
- 名前: reactguard
- 説明: ReactGuard provides framework- and vulnerability-detection tooling for CVE-2025-55182 (React2Shell)
- スター数: 9
- 言語: Python
- URL: https://github.com/theori-io/reactguard
- オーナー: theori-io
- アバター: https://avatars.githubusercontent.com/u/18063559?v=4
READMEの抜粋:
ReactGuard
React2Shell scanner powered by Xint.
ReactGuard provides framework- and vulnerability-detection tooling for CVE-2025-55182 (React2Shell) across frameworks that support React Server Components.
Support status
- Next.js 14-16 and Waku 0.17-0.27: primary, validated coverage.
- Expo server actions, React Router server actions, and generic RSC: available but experimental.
Install
pip install -e .
CLI
reactguard http://host:port/ # Framework + vu...