
React2Shell Scanner (CVE-2025-55182 & CVE-2025-66478)
CVE-2025-55182 (React) および CVE-2025-66478 (Next.js) の影響を受ける脆弱な React Server Components (RSC) 実装を特定するための非侵襲的な検出ツールです。このツールは、良性の非悪意のあるペイロードを使用して能動的検出を実行し、有害なコードを実行することなくサーバーが脆弱かどうかを判断します。
CVE-2025-55182 および CVE-2025-66478 は、React Server Components「Flight」プロトコルにおける深刻な未認証のリモートコード実行 (RCE) 脆弱性です。これらの脆弱性は以下に影響します:
react-server-dom バージョン 19.0.0、19.1.0、19.1.1、19.2.0この脆弱性は、RSC ペイロード処理ロジックにおける安全でないデシリアライゼーションに起因し、攻撃者が制御するデータがサーバー側の実行に影響を与える可能性があります。デフォルト設定は脆弱です - create-next-app で作成された標準的な Next.js アプリは、コードを変更することなく悪用される可能性があります。
このツールは以下によって能動的な脆弱性検出を実行します:
このツールは3つの検出方法を使用します:
loadServerReference コードパスをテストするarrayBuffer コードパスをテストする重要: このツールは悪意のあるコードを実行しません。サーバーの脆弱性の状態を明らかにするエラーレスポンスをトリガーするように設計された、慎重に作成された良性ペイロードのみを送信します。
python react2shell_scanner.py --target https://example.com
python react2shell_scanner.py --target https://example.com --action-id YOUR_ACTION_ID
python react2shell_scanner.py --target https://example.com --verbose
[+] CVE-2025-55182 and CVE-2025-66478 Vulnerability Checker
[*] Target: https://example.com
[*] Action ID: c67c4e1a40fcc26b5e3c0d5d17f16786f4244989
[*] Test 1: Sending $F (Server Reference) payload...
Status: 500, Evidence: workers
[*] Test 2: Sending $L (Lazy) payload...
Status: 500, Evidence: arraybuffer
[+] Result:
[!] Status: LIKELY VULNERABLE
[!] Confidence: HIGH
[!] Evidence: workers
[!] Details: Server reached loadServerReference (Flight $F deserialization bypass)
[!] RECOMMENDATION: Upgrade to patched version
======================================================================
[+] CVE-2025-55182 and CVE-2025-66478 Vulnerability Checker
[*] Target: https://example.com
[*] Action ID: c67c4e1a40fcc26b5e3c0d5d17f16786f4244989
[*] Test 1: Sending $F (Server Reference) payload...
Status: 500, Evidence: could not find the module
[*] Test 2: Sending $L (Lazy) payload...
Status: 500, Evidence: in the react server manifest
[+] Result:
[+] Status: LIKELY NOT VULNERABLE
[+] Confidence: HIGH
[+] Evidence: could not find the module
[+] Details: Server rejected payload with security error (patched)
======================================================================
このツールは、脆弱性を示す以下のエラーパターンを探します:
workers - サーバーが loadServerReference に到達した (信頼度: HIGH)arraybuffer - サーバーが $L タイプのハンドラーに到達した (信頼度: HIGH)cannot read properties of null (reading 'id') - サーバーが null メタデータで loadServerReference に到達した (信頼度: HIGH)entries - サーバーアクションが FormData の代わりにデシリアライズされたオブジェクトを受信した (信頼度: MEDIUM)temporary client reference - サーバーが $T タイプの参照を処理した (信頼度: MEDIUM)以下のエラーパターンは、サーバーがパッチ適用済みであることを示します:
could not find the modulein the react server manifestInvalid server referenceServer reference not foundUnexpected tokenis probably a bug in the react server components bundler| 製品 | 脆弱なバージョン | パッチ適用済みバージョン |
|---|---|---|
react-server-dom | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 |
| Next.js | 14.3.0-canary, 15.x, 16.x (App Router) | 14.3.0-canary.88, 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
RSC を使用する他のフレームワークも影響を受ける可能性があります:
即時対応が必要です: パッチ適用済みバージョンにアップグレードしてください:
react-server-dom 19.0.1、19.1.2、または 19.2.1 にアップグレードするreact-server バージョンに関する更新情報を公式チャンネルで確認するこのツールは防御的なセキュリティテストおよび脆弱性評価のために設計されています。悪意のあるコードを実行しない良性のペイロードのみを使用します。ただし:
このツールは保証なしで「現状のまま」提供されます。著者は、このツールによって引き起こされた誤用または損害について責任を負いません。システムをテストする前に、必ず適切な許可を得てください。
| 引数 | 必須 | デフォルト | 説明 |
|---|
--target | はい | - | チェックするターゲット URL (http:// または https:// で始まる必要があります) |
--action-id | いいえ | c67c4e1a40fcc26b5e3c0d5d17f16786f4244989 | ペイロードで使用する Action ID |
--verbose, -v | いいえ | False | レスポンスボディを表示する詳細出力を有効にする |