
隔離されたDockerラボとCVE-2025-55182用の静的スキャナー。脆弱性のある/パッチ適用済みのNext.jsビルドと、RSC FlightデシリアライゼーションのPoC検証を備えています。
免責事項: このリポジトリとその PoC 成果物は、隔離されたラボ環境内での教育、研究、および防御的セキュリティデモンストレーションの目的でのみ作成されています。外部システムに対する許可のないテストは固く禁止されています。
このリポジトリは、React Server Components (RSC) Flight Protocol の逆シリアル化の脆弱性(一般に React2Shell / CVE-2025-55182 と呼ばれます)を分析、悪用、および対策の検証を行うための、再現可能なデュアルコンテナ Docker 環境を提供します。このラボは、パッチ未適用の Next.js ビルドに対する攻撃後の影響を実証し、パッチ適用済みビルドでの対策効果を証明します。
http://127.0.0.1:3001 (react2shell-vulnerable コンテナ)http://127.0.0.1:3002 (react2shell-patched コンテナ)internal: true) のプライベート Docker ブリッジネットワーク内で実行されます。127.0.0.1 (localhost) に厳密にバインドされており、外部 LAN からのアクセスを防ぎます。DUMMY_SECRET=LAB_VULNERABLE_SECRET_DO_NOT_USE_12345) を使用します。24.0.0+、Compose v2.20.0+)3.8+ — 基本自動化には標準ライブラリのみ)リポジトリをクローンし、ローカル環境を確認します:
git clone https://github.com/PhanHoangKhang/React2Shell.git
lab/ ディレクトリに移動し、デュアルビルドの両コンテナを初期化します:
cd lab
docker-compose up -d --build
cd ..
両方のラボで検出スキャナを実行します:
python src/react2shell_scanner.py lab/patched
python src/react2shell_scanner.py lab/vulnerable
cd lab
docker-compose stop
cd ..
エクスプロイト検証テストを実行し、データ漏えいの成果物を確認するには、詳細なステップバイステップの PoC ガイドを参照してください:
👉 PoC & 脆弱性検証ガイドを参照 (poc_reference.md)
package-lock.json (v3 形式)。静的スキャナは、正確な検出のために packages["node_modules/next"] 内の解決済み依存関係ツリーの解析を優先します。< 15.0.3 (15.0.0-rc ビルドを含む) を RSC Flight Protocol の逆シリアル化に対して脆弱とマークしています。| ターゲットサービス | フレームワーク / パッケージ | インストール済みバージョン | ロックファイル形式 |
|---|
脆弱なターゲット (:3001) | Next.js | 15.0.0-rc.1 | package-lock.json (ロックファイルバージョン 3) |
| React / React-DOM | 19.0.0-rc-65a56d0e-20241020 | NPM レジストリリリース | |
パッチ適用済みターゲット (:3002) | Next.js | 15.0.3 (安定版) | package-lock.json (ロックファイルバージョン 3) |
| React / React-DOM | 19.0.0 (安定版) | NPM レジストリリリース |