
2025年12月に発見されたReact Server Componentsの重大な脆弱性について
開発【緊急】React Server Componentsに最大深刻度CVSS 10.0の脆弱性「React2Shell」- Log4j以来の危機
2025年12月、Web開発界に激震が走りました。Reactの最新機能であるReact Server Componentsに、 CVSS 10.0(最大深刻度) の脆弱性が発見されたのです。この脆弱性は「 React2Shell 」(CVE-2025-55182)と命名され、公開からわずか数時間で中国国家支援のAPTグループによる攻撃が開始されるという、2021年のLog4jShell以来の深刻なセキュリティインシデントとなっています。
本記事では、React2Shellの技術的詳細、実際の攻撃状況、そして後続で発見された関連脆弱性について、最新情報を整理してお伝えします。
脆弱性の概要
CVE-2025-55182(React2Shell)
- CVSS スコア : 10.0(Critical - 最大深刻度)
- 脆弱性タイプ : 認証不要のリモートコード実行(RCE)
- 影響範囲 : React Server Componentsを使用するすべてのアプリケーション
- 発見者 : Lachlan Davidson
- 公開日 : 2025年12月3日
影響を受けるバージョン
React関連パッケージ:
- react-server-dom-webpack: 19.0、19.1.0、19.1.1、19.2.0
- react-server-dom-parcel: 同上
- react-server-dom-turbopack: 同上
主要フレームワーク:
- Next.js: 14.3.0-canary.77以降のバージョン
- React Router
- Waku: 0.27.2以前
- Expo
- Redwood SDK
脆弱性の深刻度
この脆弱性がCVSS 10.0という最大スコアを付与された理由:
- 認証不要 : 攻撃者はログインや特別な権限が不要
- ユーザー操作不要 : 自動化された攻撃が可能
- リモート実行 : インターネット経由で攻撃可能
- 完全な制御 : サーバー上で任意のコードを実行可能
CVE-2025-55182(React2Shell)の詳細
脆弱性の本質
React2Shellは、React Server Componentsの Flight Protocol における 安全でないデシリアライゼーション によって引き起こされます。攻撃者は特別に細工したHTTPリクエストをServer Functionエンドポイントに送信することで、サーバー上で任意のコードを実行できます。
攻撃の特徴
- エクスプロイトの容易さ : 100%近い成功率
- 認証不要 : App Routerのあらゆるエンドポイントが標的に
- デフォルト設定で脆弱 : React 19とNext.jsのデフォルト構成で影響を受ける
よくある誤解
「これはプロトタイプ汚染の脆弱性である」という誤解について:
公開されているPoCコードが__proto__を使用しているため、プロトタイプ汚染と誤解されることがありますが、実際の脆弱性は JavaScriptのObjectプロトタイプに属するconstructorのようなプロパティにアクセスできること です。__proto__は単にFunction constructorへのアクセス経路の1つにすぎません。
技術的な仕組み:Flight Protocolのデシリアライゼーション
Flight Protocolとは
Flight Protocolは、React Server Componentsがクライアントとサーバー間でデータをやり取りするための仕組みです。
2つの主要なフロー:
-
Server-to-Client Flow
サーバーがRSCデータを小さなデータパケットにシリアライズしてストリーミング。クライアントはこれをデシリアライズしてレンダリング。 -
Client-to-Server (Reply Flow)
クライアントがデータをサーバーにシリアライズして送信。サーバーはこれをデシリアライズしてリクエストを処理。
脆弱性が発生する箇所
サーバーがRSCペイロードを受信すると、Flight Protocolはそれをデシリアライズし、エンコードされたデータをJavaScript構造に変換します。
問題点:
Reactのデシリアライゼーションロジックは、 オブジェクトプロパティを十分に検証せずに展開 します。これにより、攻撃者は以下のような悪意のあるキーをペイロードに挿入できます:
__proto__constructorprototype
これらのキーは、サーバー上のJavaScriptオブジェクトの基本的な動作を変更し、最終的に 任意のコード実行 を可能にします。
攻撃シナリオの例
POST /api/server-action HTTP/1.1 Content-Type: text/plain next-action: <action-id> ["$","constructor","prototype",{"value":"malicious code"}]
このような細工されたリクエストにより、サーバー側で任意のコードを実行できます。
タイムライン:発見から大規模攻撃まで
発見から公開まで
| 日付 | 出来事 |
|---|---|
| 2025年11月29日 | Lachlan DavidsonがMeta Bug Bountyに報告 |
| 11月30日 | Metaセキュリティ研究者が確認、React Teamが修正開始 |
| 12月1日 | 修正完了、ホスティングプロバイダーとの調整開始 |
| 12月3日 | 修正版をnpmに公開、CVE-2025-55182として公開 |
公開後の展開
| 日付 | 出来事 |
|---|---|
| 12月3日 | 公開から 数時間以内 に中国APTグループによる攻撃開始 |
| 12月4日 | 複数のPoCが公開される |
| 12月5日 | 攻撃試行が急増、UTC 6:00から複数の被害者が侵害される |
| 12月5日 | CISAがKnown Exploited Vulnerabilities Catalogに追加 |
| 12月6日 | Shadow Serverが 77,664のIPアドレス が脆弱であると報告 |
| 12月8日 | 中国の脅威アクターによる積極的な悪用をRecorded Futureが報告 |
| 12月9日 | IPA(情報処理推進機構)が注意喚起、 日本国内でも被害報告 |
| 12月11日 | 追加の脆弱性(CVE-2025-55183、CVE-2025-55184)が公開 |
実際の攻撃状況
中国国家支援のAPTグループによる攻撃
確認された攻撃グループ:
- Earth Lamia (中国国家安全部と関連)
- Jackpot Panda
- UNC5174 (中国国家支援の脅威アクター)
被害規模
- 77,000以上 のIPアドレスが脆弱性に対して脆弱
- 30以上の組織 がすでに侵害されたことを確認
- 複数セクター にわたる被害(金融、医療、テクノロジーなど)
- 日本国内でもJPCERT/CCが 被害報告を受領
攻撃手法
1. 初期偵察
攻撃者はまずターゲットがハニーポットでないことを確認:
whoamiコマンドの実行- bashでの乗算実行
- ランダム文字列のMD5/Base64ハッシュ計算
2. ペイロード展開
確認後、以下のようなマルウェアをダウンロード・実行:
- Cobalt Strike beacons (Cross C2で生成)
- Nezha
- Fast Reverse Proxy (FRP)
- Sliver ペイロード
- Secret-Hunter (認証情報窃取)
- Mirai/Gafgyt 亜種
- クリプトマイナー
- RondoDox ボットネット
3. 侵害後の活動
- AWS設定ファイルや認証情報の窃取
- クラウドインスタンスメタデータの特定
- 永続的なバックドアの設置
- 横展開の試行
Cloudflareへの影響
React2Shellに対する緩和措置の影響で、2025年12月5日にCloudflareで大規模な障害が発生。この脆弱性がいかにWeb全体に影響を与えているかを示す事例となりました。
追加で発見された脆弱性
React2Shellの修正パッチをセキュリティ研究者が調査する過程で、 さらに3つの脆弱性 が発見されました。
CVE-2025-55183(ソースコード露出)
- CVSS スコア : 5.3(Medium)
- 影響 : Server Functionのコンパイル済みソースコードが露出
- リスク :
- ビジネスロジックの漏洩
- コード内にハードコードされたシークレット(環境変数ではなく)の露出
発見者 : RyotaK (GMO Flatt Security Inc.)、Andrew MacPherson
CVE-2025-55184(サービス拒否)
- CVSS スコア : 7.5(High)
- 影響 : サーバープロセスが無限ループでハング、CPU消費
- 特徴 :
- 認証不要でApp Routerの任意のエンドポイントが標的に
- 将来のHTTPリクエストが処理不能に
CVE-2025-67779(DoSの拡張)
- 経緯 : CVE-2025-55184の 初期修正が不完全 だったため、追加のCVEが発行
- 影響 : バージョン 19.0.2、19.1.3、19.2.2 を使用している場合も脆弱
- 教訓 : 2回のパッチ適用が必要 となったケースも
影響を受けるバージョン
これらの脆弱性は、CVE-2025-55182と 同じバージョン に存在:
- 19.0.0、19.0.1、19.1.0、19.1.1、19.1.2、19.2.0、19.2.1
修正バージョン
React:
- 19.0.3、19.1.4、19.2.3 以降
Next.js:
- 14.2.35、15.0.7、15.1.11、15.2.8、15.3.8、15.4.10、15.5.9、16.0.10 以降
対策方法
1. 即座のアップデート(最優先)
唯一の完全な対策は、パッチが適用されたバージョンへのアップグレードです。
React
npm update react react-dom # または yarn upgrade react react-dom
最新の安全なバージョン: 19.0.3、19.1.4、19.2.3以降
Next.js
npm update next # または yarn upgrade next
対応バージョン: 15.0.7以降の各メジャーバージョン
2. WAFルールの活用(一時的な緩和策)
主要クラウドプロバイダーは保護ルールを展開していますが、 WAFだけでは不十分 です。
Azure WAF
カスタムルールの例:
PostArgsに含まれる危険なパターンを検出:constructor,__proto__,prototype,_responsenext-actionヘッダーの存在確認
Cloudflare
すべてのWAF顧客は自動的に保護されています。
Vercel
グローバルにWAFルールを展開済み。12月5日に追加の攻撃パターンをカバーするルールを更新。
Google Cloud
Cloud ArmorのCVE-canary WAFルールを使用。
重要な注意点:
- WAFはバイパス可能な場合があります
- 最小限の実行可能なエクスプロイトは
__proto__を必要としません - パッチ適用が唯一の完全な対策 です
3. システムの侵害確認
すでに攻撃を受けている可能性がある場合:
- ログの確認
- 不審なHTTPリクエスト(特に
next-actionヘッダー) - 異常なサーバーアクティビティ
- プロセスの確認
ps aux | grep -E "(wget|curl|bash)"
- ネットワーク接続の確認
netstat -tulpn | grep ESTABLISHED
- AWS認証情報の確認
~/.aws/credentialsの不正アクセス- CloudTrailログの異常なアクティビティ
- マルウェアスキャン
- クリプトマイナーの検出
- バックドアの確認
4. IPAの情報を確認
日本国内の最新状況は、IPA(情報処理推進機構)が提供しています:
IPA セキュリティアラート:
https://www.ipa.go.jp/security/security-alert/2025/alert20251209.html
IPAでは以下の情報を提供:
- 国内での攻撃観測状況
- 影響を受けるバージョンの詳細
- 推奨される対策手順
- 関連する追加脆弱性の情報
日本国内でも攻撃が観測されており、JPCERT/CCが被害報告を受領しています。
5. 開発環境の保護
- 依存関係の監査
npm audit # または yarn audit
- CI/CDパイプラインの確認
- 自動更新の設定
- セキュリティスキャンの統合
- Dependabotの活用 (GitHub)
自動的にセキュリティアップデートのPRを作成
6. 今後の予防策
- 定期的なアップデート
- セキュリティパッチの迅速な適用
- 依存関係の最新化
- セキュリティアドバイザリの購読
- React公式ブログ
- Next.jsセキュリティアドバイザリ
- IPAのセキュリティアラート
- Defense in Depth(多層防御)
- WAF + パッチ適用
- ネットワークセグメンテーション
- 最小権限の原則
まとめ
React2Shell(CVE-2025-55182)は、2021年のLog4jShell以来の 最も深刻なWeb脆弱性 の1つです。以下のポイントを押さえておきましょう:
重要なポイント
- CVSS 10.0の最大深刻度 - 認証不要でリモートコード実行が可能
- 公開から数時間で攻撃開始 - 中国国家支援のAPTグループが即座に悪用
- 77,000以上のIPアドレスが脆弱 - 世界規模の影響
- 日本国内でも被害発生 - IPAとJPCERT/CCが確認
- 追加の脆弱性も発見 - CVE-2025-55183、CVE-2025-55184、CVE-2025-67779
- WAFだけでは不十分 - パッチ適用が唯一の完全な対策
教訓
React2Shellは、以下の重要な教訓を示しています:
- モダンフレームワークも脆弱 : 最新技術だからといって安全とは限らない
- 公開から攻撃まで数時間 : パッチの迅速な適用が極めて重要
- サプライチェーンリスク : 依存関係の脆弱性は広範囲に影響
- 継続的な監視が必要 : 初期修正が不完全な場合もある(CVE-2025-67779)
参考リンク
- React公式ブログ - Critical Security Vulnerability
- IPA セキュリティアラート
- JPCERT/CC 注意喚起
- Wiz Blog - React2Shell Deep Dive
- AWS Security Blog - China-nexus Exploitation
React Server Componentsを使用しているすべての開発者とインフラ担当者は、今すぐアクションを起こしてください。この脆弱性は現在進行形で悪用されており、遅延は重大なリスクを意味します。
安全なWeb開発を。