
2025年12月3日、React Server Components(RSC)に過去最悪の深刻度を持つリモートコード実行(RCE)脆弱性「CVE-2025-55182」(通称:React2Shell)が公開された。CVSSスコアは最大値の10.0で、認証不要・1リクエストで攻撃可能という極めて危険な脆弱性である。公開から数時間以内に中国系ハッカー集団による悪用が確認され、日本国内でも複数の被害事例が報告されている。
脆弱性の概要と発見経緯
この脆弱性は、ニュージーランドのセキュリティ研究者Lachlan Davidson氏が発見し、2025年11月29日にMetaバグバウンティプログラムを通じて報告した。Metaセキュリティチームは翌日に脆弱性を確認、12月1日に修正パッチを完成させ、12月3日にnpmへの修正版公開とCVE公開を同時に行った。
影響を受けるのはReact 19系のServer Components関連パッケージ(react-server-dom-webpack、react-server-dom-parcel、react-server-dom-turbopack)のバージョン19.0、19.1.0、19.1.1、19.2.0である。修正済みバージョンは19.0.1、19.1.2、19.2.1で、早急なアップデートが必要だ。
重要な注意点として、アプリケーションがServer Functions(旧Server Actions)を明示的に使用していなくても、React Server Componentsをサポートしている時点で脆弱性の影響を受ける。
| 項目 | 内容 |
|---|---|
| CVE ID | CVE-2025-55182 |
| 通称 | React2Shell |
| CVSSスコア | 10.0(最大・緊急) |
| CWE分類 | CWE-502(信頼できないデータのデシリアライゼーション) |
| 発見者 | Lachlan Davidson氏 |
| 公開日 | 2025年12月3日 |
技術的な仕組みと攻撃メカニズム

この脆弱性の本質は、RSCの「Flight」プロトコルにおける安全でないデシリアライゼーション処理にある。
Flightプロトコルは、サーバーとクライアント間でReactコンポーネントツリーをシリアライズして転送するために使用される。攻撃者は細工された不正なHTTP POSTリクエストをServer Functionエンドポイントに送信することで、サーバー側のJavaScript実行環境を乗っ取ることができる。
具体的には、脆弱なコードではモジュール参照の検証が不十分だった。修正パッチではhasOwnPropertyによる検証が追加された:
// 修正前(脆弱)
return moduleExports[metadata[NAME]];
// 修正後
if (hasOwnProperty.call(moduleExports, metadata[NAME])) {
return moduleExports[metadata[NAME]];
}
return (undefined: any);セキュリティ企業Wizの検証によると、デフォルト設定のアプリケーションに対してほぼ100%の成功率でRCEが実行可能である。DatadogもNext.jsの雛形ツールcreate-next-appで作成した基本的なアプリケーションでさえ、攻撃が成功することを確認している。
主要フレームワークへの広範な影響
React本体に加え、多数のフレームワークが影響を受ける:
- Next.js: バージョン15.x、16.x(App Router使用時)、14.3.0-canary.77以降
- React Router: RSCプレビュー版
- Waku: RSC対応版すべて
- RedwoodSDK (rwsdk): RSC対応版
- @parcel/rsc: 全バージョン
- @vitejs/plugin-rsc: 全バージョン
- Expo: RSC対応版
特にNext.jsは深刻だ。App RouterではデフォルトでページとレイアウトがServer Componentsとして扱われるため、"use client"を明示的に指定しない限り脆弱な状態となる。セキュリティ研究者のFlorian Roth氏は「Next.jsでRSCを使えば、デフォルトでその状態になる」と警告している。
Next.jsの修正済みバージョンは15.0.5、15.1.9、15.2.6、15.3.6、15.4.8、15.5.7、16.0.7である。
国家支援ハッカーによる即座の悪用
公開から数時間以内に、複数の脅威アクターによる積極的な悪用が確認された。
AWSの脅威インテリジェンスチームによると、中国系の脅威グループ「Earth Lamia」および「Jackpot Panda」が公開直後から攻撃を開始。Palo Alto Networks Unit 42は、中国国家安全部(MSS)との関連が疑われるUNC5174(CL-STA-1015)による活動を確認し、30以上の組織が被害を受けたと報告している。
観測された攻撃後の活動には、SNOWLIGHTやVShellトロイの木馬、Cobalt Strike、クロスプラットフォーム型バックドアNoodle RATの展開、AWS認証情報の窃取、暗号通貨マイニングマルウェアのインストールなどがある。
Shadowserver Foundationの調査では、脆弱なIPアドレスは12月5日時点で約77,664件、12月7日には約28,964件に減少しており、急速なパッチ適用が進んでいることがわかる。
日本国内での被害と政府機関の対応
日本でも深刻な影響が出ている。
セキュリティ企業LACの報告
LACのJSOC(Japan Security Operation Center)は12月9日、「複数の顧客環境で実際にセキュリティインシデントが発生」したと発表。攻撃元は主にポーランドからで、ボットマルウェアのインストールを試みる攻撃が多数検出されている。12月7日には緊急シグネチャ(JSIG)をリリースし、35件以上の攻撃元IPアドレスを公開した。
JPCERT/CCの警告
JPCERT/CCは12月5日にCyberNewsFlashを発行し、「実証コード(PoC)が公開されており、今後悪用が増加する可能性が高い」と警告。海外セキュリティベンダーが既に攻撃の試行を観測していることも伝えている。
IPAの注意喚起
IPA(情報処理推進機構)は12月9日に重要セキュリティ情報として本脆弱性を取り上げ、「攻撃の拡大が予想されるため、早急な対応が必要」と呼びかけている。
日本国内の脆弱なIPアドレス数は、12月5日の約2,100件から12月6日には約869件に減少(削減率59%)しており、国内のパッチ適用スピードは比較的速い。
推奨される対策と緊急対応手順
即座に実施すべき対策
- パッケージのアップデート
- React:
19.0.1、19.1.2、または19.2.1へ更新 - Next.js: 該当バージョンの最新パッチへ更新
npm auditコマンドで脆弱性の有無を確認
- Vercel提供の自動修正ツール実行
npx fix-react2shell-next- シークレット情報のローテーション
- 12月4日以前にパッチ未適用だった場合、環境変数・APIキー・認証情報を全て更新
ワークアラウンド(回避策)
根本的な回避策は存在しない。WAFルールは一時的な緩和策に過ぎず、パッチ適用が唯一の確実な対策である。Cloudflare、AWS、Vercel、Google Cloudなどの主要プロバイダーは保護ルールを展開済みだが、これらは完全な防御ではない。
侵害の兆候を確認するためのチェックポイント
- 不審なファイルやプロセスの存在
wgetやcurlによる外部接続の痕跡.aws/credentialsや.envファイルへのアクセスログ- 見慣れないbase64エンコードされたコマンドの実行履歴
専門家の見解と業界への影響
React公式チームの声明
React公式ブログでは「認証なしでリモートコード実行が可能な脆弱性があります。即座のアップグレードを推奨します」と明確に警告。Vercel CEOのGuillermo Rauch氏は「安全チェックの明らかな欠落と、それを悪用する見事なメカニズムの組み合わせ」と表現した。
セキュリティ研究者の評価
Tenableのセキュリティリサーチディレクター、Ari Eitan氏は「ReactとNext.jsの普及度と悪用の容易さを考えると、これらのバグは重大。認証なしに単一のHTTPリクエストでサーバー側のRCEが可能という点が極めて有害」とコメント。
VulnCheckのCale Black氏は「単一リクエストで検出困難、実行中のメモリ内ランタイムを直接操作でき、バックエンドサーバーの状態を複雑に操作可能。ポストエクスプロイトの観点からほぼ完璧」と分析している。

影響範囲に関する議論
一部の研究者は「React 19は2024年12月リリースで、RSCも新機能。ニッチな構成」と指摘するが、Next.js App RouterではデフォルトでRSCが有効になる点を考慮すると、影響範囲は想定より広いという見方が支配的だ。Wizの調査ではクラウド環境の39~45%に脆弱なインスタンスが存在し、うち12%がインターネットに公開されているという。
過去のReact関連脆弱性との比較
React Server Componentsは比較的新しい機能であり、同様の脆弱性は過去に例がない。ただし、関連する過去の事例として以下がある:
- CVE-2018-6341(react-dom XSS):SSRでの属性処理に関するXSS脆弱性
- CVE-2022-23631(Blitz.js/superjson):Reactフルスタックフレームワークでのプロトタイプ汚染からRCEへの脆弱性
- CVE-2025-31137/43864/43865(React Router 7/Remix):2025年4月に公開されたリクエストパス偽装とキャッシュ汚染の脆弱性
CVE-2025-55182は、これらと比較して攻撃の容易さ(認証不要、単一リクエスト)と影響範囲の広さ(主要フレームワーク全体)において突出しており、Reactエコシステム史上最も深刻な脆弱性と位置づけられる。
結論:Web開発者が今すぐ取るべきアクション

React2Shellは「現代のWebの40%以上を支えるReact」のサーバーサイド機能を直撃した、記録的な深刻度の脆弱性である。
即座に確認すべきこと:
- 自社・担当プロジェクトでReact 19.xまたはNext.js 15.x/16.xを使用しているか
npm list react-server-dom-webpackなどで脆弱なパッケージが含まれていないか- 12月3日以前から本番環境で稼働していた場合、侵害の兆候がないか
React Server Componentsは次世代のReact開発の中核となる技術だが、今回の事例はサーバーサイドでのJavaScript実行が持つセキュリティリスクを改めて浮き彫りにした。デシリアライゼーション処理は「最も危険な脆弱性クラスの一つ」(Bitdefender)であり、同様のパターンは今後も発見される可能性がある。開発者は依存パッケージの定期的な監査と、セキュリティアドバイザリへの継続的な注意を怠らないことが重要だ。