
React2Shell 脆弱性 (CVE-2025-55182 / CVE-2025-66478) 完全スクリプト
認可されたローカルテスト環境のみで、重大な React2Shell 脆弱性 (CVE-2025-55182 / CVE-2025-66478) を実証するための Proof-of-Concept ツールです。
この脆弱性 (CVSS 10.0) は、高度な脅威アクターによって活発に悪用されています。 Amazon Threat Intelligence は、Earth Lamia や Jackpot Panda を含む複数の中国関連の国家支援グループが、開示から数時間以内に公開エクスプロイトを兵器化し始めたと報告しています。米国サイバーセキュリティ・インフラストラクチャセキュリティ庁 (CISA) は、これを既知の悪用された脆弱性 (KEV) カタログに追加しました。
CVE-2025-55182 (React2Shell) は、React Server Components (RSC) の "Flight" プロトコルにおける、認証前の重大なリモートコード実行 (RCE) 脆弱性です。別の識別子 CVE-2025-66478 は Next.js 用に割り当てられましたが、CVE-2025-55182 の重複として以後は拒否されています。両者は同じ根本原因を共有しているためです。
chmod +x pwn-nextjs.sh
./pwn-nextjs.sh [TARGET_URL] [COMMAND]
# 特定の URL を対象にする
./pwn-nextjs.sh https://vulnerable-app.example.com "whoami"
root
この脆弱性は特定の React パッケージに起因し、それらをバンドルしているすべてのフレームワークに影響します。
影響を受けないもの: Next.js 13.x、Next.js 14.x の安定版、Pages Router アプリケーション、および Edge Runtime は影響を受けません。
RSC Flight プロトコルは、クライアントとサーバー間の通信のためにデータをシリアル化します。脆弱性はサーバー側の逆シリアル化ロジックにあり、受信したペイロードからオブジェクトのプロパティを十分な検証なしに安全でない方法で展開します。これにより、攻撃者はリクエストに悪意のあるキー (__proto__ や constructor など) を注入でき、プロトタイプ汚染 を引き起こします。
プロトタイプチェーンが汚染されると、サーバーは攻撃者の影響を受けた実行パスをたどります。これを連鎖させることで、サーバーの権限で任意の JavaScript コードを実行でき、完全なリモートコード実行 (RCE) につながります。
セキュリティ研究者は、以下のような成功したエクスプロイトを観察しています:
.aws/credentials) の特定と外部送信を試みます。パッチ適用は必須であり、脆弱性を完全に排除する唯一の方法です。脆弱なコードパスを無効にする構成設定は存在しません。
# Next.js ユーザーは、お使いのリリースラインの最新のパッチ適用済みバージョンにアップグレードしてください。
# 例: Next.js 15.5.x を使用している場合:
npm install [email protected]
# React の依存関係も更新されていることを確認してください:
npm install react@latest react-dom@latest
確認: package-lock.json または yarn.lock ファイルが、パッチ適用済みの react-server-dom-* パッケージバージョン (19.0.1、19.1.2、または 19.2.1) を反映していることを確認してください。
パッチ適用までの間、エクスプロイトの試みをブロックする Web Application Firewall (WAF) ルールを展開してください:
AWSManagedRulesKnownBadInputsRuleSet (v1.24+) には、この CVE 用のルールが含まれています。cve-canary ルールが利用できます。注意: WAF ルールは一時的で不完全な緩和策です。パッチ適用の必要性に代わるものではありません。
エクスプロイト試行の兆候として、以下のログを確認してください:
next-action または rsc-action-id ヘッダーを含む POST リクエスト。$@ や "status":"resolved_model" のようなパターンを含むリクエストボディ。whoami、id、uname)、/etc/passwd の読み取り、または /tmp/ へのファイル書き込み (例: pwned.txt)。このツールは、CVSS スコア 10.0 (最大深刻度) の脆弱性を実証するものであり、現在国家支援を受けた悪用が行われています。
忘れないでください: このツールは、パッチ適用が緊急である理由 を示しています。この知識をセキュリティの向上とシステムの防御に活用し、侵害に使用しないでください。上記に記載されたパッチ適用済みバージョンに、すべての依存関係を更新してください。
| コンポーネント | 影響を受けるバージョン | パッチ適用済みバージョン | 備考 |
|---|
| React Packages ( react-server-dom-webpack, -parcel, -turbopack) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1 | 上流の欠陥の原因。 |
| Next.js (App Router) | 15.x, 16.x, 14.3.0-canary.77 and later | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 | 主な影響を受けるフレームワーク。 |
| Other Frameworks | React Router, Waku, RedwoodJS, Parcel (@parcel/rsc), Vite RSC Plugin | パッチ適用済みの React パッケージ (>19.0.1, 19.1.2, 19.2.1) を使用するバージョンに更新してください。 | 影響を受ける React パッケージを使用している場合に脆弱です。 |