CVE-2025-55182は、React Server Components(RSC)がクライアントから受け取ったデータを復元する処理に欠陥があり、認証なしでサーバー上の任意コードを実行できる脆弱性です。発見者が「React2Shell」と名付け、2025年12月3日に公開されました。この記事では、なぜこれほど危険と評価されたのか、Next.jsを含めてどこまでが対象でどこからが対象外か、公開後にどんな悪用が観測されたか、そして2026年7月まで続いた後続の脆弱性7件の流れを、一次情報に基づいて整理します。更新作業そのものの手順は別記事に分けています。
まとめ:CVE-2025-55182は既定構成で成立する認証不要RCEで後続CVEも続いた
CVE-2025-55182は、RSCに対応したアプリであれば、開発者が特別な機能を書いていなくても成立するリモートコード実行です。CVSS 3.1の基本値は10.0で、米CISAは公開2日後の2025年12月5日に悪用が確認された脆弱性のカタログへ追加しました。
対象はRSCパッケージ(react-server-dom-webpack/-parcel/-turbopack)の19.0.0・19.1.0・19.1.1・19.2.0と、それを同梱するNext.js 15.x・16.0.6以前・14.3.0-canary.77以降のカナリア版です。初回修正の後もDoSやソースコード露出が7件見つかり、2026年10月2日時点で後続まで直っている版はRSCパッケージが19.0.8/19.1.9/19.2.8、Next.jsが16.3.8/15.5.27です。自分の環境の判定と更新の手順はReact2Shellの対応手順(Next.jsの版確認と更新方法)で解説しています。
CVE-2025-55182の発見から公開までの経緯とCVSS 10.0の内訳
この脆弱性は、研究者のLachlan Davidson氏が2025年11月29日にMetaのバグ報奨金制度を通じて報告したものです。React公式ブログの時系列によると、11月30日にMetaが確認し、12月1日に修正が作られ、12月3日にnpmへの修正版公開と同時に公表されました。報告から公開まで4日です。
React2Shellという呼び名とCVE-2025-66478が取り下げられた理由
「React2Shell」は、発見者が解説サイトで使った呼び名です。2021年のLog4j(Log4Shell)になぞらえ、Reactからシェルの実行まで到達することを表しています。公開時、Next.js側には別にCVE-2025-66478が割り当てられました。しかし原因がReact側と同一だったため、NVDでは「CVE-2025-55182の重複」としてRejected(取り下げ)になっています。追跡する番号はCVE-2025-55182の1つです。
CVSS 3.1基本値10.0を構成する6つの評価項目の読み方
NVDの登録情報にあるベクトルは、CNAのMetaが付けた AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H です。ネットワーク越しに(AV:N)、特別な条件なく(AC:L)、認証なしで(PR:N)、利用者の操作も要らず(UI:N)、影響がアプリの外まで及び(S:C)、機密性・完全性・可用性がすべて全面的に損なわれます。弱点の分類はCWE-502(信頼できないデータのデシリアライズ)です。
スコアの算出方法そのものはCVSSの見方と計算方法で解説しています。10.0という数字よりも、「既定構成で成立する」「認証が要らない」という2つの条件が、対応の緊急度を決めたと読むのが実務的です。
Flightプロトコルの復元処理で任意コード実行に至る仕組み
RSCでは、ブラウザからサーバー上の関数(Server Function、Next.jsではServer Actions)を呼び出すとき、引数をReact独自の形式に変換してHTTPリクエストで送ります。サーバー側のReactがこれを元のデータに戻す処理に欠陥がありました。
Server Functionの受け口に届く細工リクエストと復元処理の欠陥
React公式の説明では、攻撃者はServer Functionの受け口に向けて細工したHTTPリクエストを送り、Reactがそれを復元する過程でサーバー上のコード実行に至ります。サーバーとクライアントの間でやり取りされるRSCのデータ形式(Flight)は、RSCペイロードの中身と読み方で確認できます。RSC全体の仕組みを確認する際の参考資料は、React Server Componentsの仕組みと使い分けです。
Server Functionを書いていないアプリも対象になる既定構成の問題
React公式は「Server Functionの受け口を実装していなくても、RSCに対応したアプリは脆弱になりうる」と明記しています。Wizの分析も、create-next-app で作って本番ビルドしただけの標準的なNext.jsアプリが、コードを1行も変えずに攻撃できたと報告しました。「危険な機能を公開していなければ安全」という通常の前提が通じなかった点が、この脆弱性を特別にしています。
発見者のサイトは、公開直後に出回った「PoC」の多くが、開発者が危険な関数をわざわざ公開している前提の偽物だったとも注意しています。偽PoCで再現しなかったことを、安全の根拠にしてはいけません。
影響を受ける製品の範囲とNext.jsで対象外になる構成条件
影響の有無は、RSCの実装を含むパッケージの版で決まります。React本体(react・react-dom)の版は判定に使いません。
RSCパッケージとNext.jsの影響版を系列ごとに整理した一覧
| 対象 | React2Shellの影響版 | 最初の修正版 |
|---|---|---|
| react-server-dom-* | 19.0.0/19.1.0/19.1.1 | 19.0.1/19.1.2 |
| react-server-dom-* | 19.2.0 | 19.2.1 |
| Next.js 15系 | 15.0.0〜15.5.6 | 系列ごとに15.0.5〜15.5.7 |
| Next.js 16系 | 16.0.0〜16.0.6 | 16.0.7 |
| Next.js 14系カナリア | 14.3.0-canary.77以降 | 14系安定版へ戻す |
react-server-dom-*は、webpack・parcel・turbopackの3パッケージを指します。Next.jsはこの実装を本体に同梱しているため、npmの依存ツリーには現れません。React公式が影響を受けると挙げたフレームワークは、next、react-router、waku、@parcel/rsc、@vitejs/plugin-rsc、rwsdkの6つです。WakuはRSCを前提にした軽量フレームワークで、Wakuの導入とNext.jsとの違いで紹介しています。
Next.js 13・14安定版とPages Router・Edge Runtime判定
Next.js公式の告知は、13.x、14.x安定版、Pages Routerのアプリ、Edge RuntimeをReact2Shellの対象外としています。旧版の本記事は「Next.js 13以降のApp Routerは影響を受ける」と書いていましたが、これは誤りでした。
ただし、2025年12月11日に公表された後続のDoS(CVE-2025-55184)と、その修正漏れ(CVE-2025-67779)は、Next.js 13.3〜14.2.34も対象です。14系の最終版14.2.35で直っています。リモートコード実行の対象外であることと、何も更新しなくてよいことは別の話です。
React Native・Expo・モノレポでの影響判断とクラウド上の露出規模
React Nativeのアプリは、サーバー側でRSCを動かさない限り対象になりません。React公式の更新手順は、モノレポを使わずreact-domも入れていないReact Nativeの利用者について「追加の作業は不要」としています。モノレポでWebアプリと同居している場合は、react-server-dom-*が入っていればそれだけを更新し、reactとreact-domの版は動かさないという案内です。Expoについては、Expoの変更履歴を参照するよう個別に案内されています。
露出の規模については、Wizが自社の顧客環境のデータとして、クラウド環境の39%に脆弱な版のNext.jsまたはReactがあり、44%の環境がインターネットに公開されたNext.jsを持つと示しました(44%は版を問わない数字)。旧版の本記事は「アプリケーションインスタンスの39%」と書いていましたが、母数はインスタンスではなく環境です。
公開直後から観測された悪用と侵入後の行動に関する各社の調査報告
悪用は公開当日に始まりました。各社の報告のうち、一次情報で確認できたものを挙げます。
AWS・Wiz・Unit 42が報告した攻撃者と侵入後の活動内容
AWSの脅威インテリジェンスチームは、公開から数時間以内に、Earth LamiaやJackpot Pandaを含む中国系の国家関与グループによる悪用の試みを、自社のハニーポット(MadPot)で観測したと2025年12月4日に報告しています。Wizは、侵入後にクラウドの資格情報を集め、暗号資産のマイニングを始める動きを観測しました。
Unit 42の分析は、侵入後に資格情報やDNS設定を洗い出すコマンド、XMRig(暗号資産マイナー)を導入するスクリプト、SNOWLIGHTやVShellといったトロイの木馬を確認しています。2025年12月12日の更新では、P2Pで指令をやり取りする新種のLinuxバックドアKSwapDoorを公表しました。
PoCの公開時期とCISA KEV追加・米連邦政府機関の対応期限の関係
発見者のサイトによると、実際に動く公開PoCは公表から約30時間後に出回り始めました。発見者自身のPoCはGitHubのリポジトリで2025年12月5日(UTC)に公開されています。
CISAのKEVカタログへの追加は2025年12月5日で、米連邦政府機関への対応期限は2025年12月12日でした。KEVの対応義務は米連邦政府機関向けのもので、民間企業に法的な義務を課すものではありません。KEVでは、ランサムウェアでの利用が「Known(確認済み)」とされています。PoCが一般に出回ることの意味はexploitの仕組みと防御で解説しています。
初回修正後に続いた後続CVE7件の時系列と系列別の最新修正版
初回の修正版で終わりではありませんでした。同じ復元処理の周辺で、2026年7月までに7件の後続CVEが見つかっています。いずれも2026年10月2日時点でKEVには載っていません。
2025年11月から2026年7月までの発表主体別の時系列表
| 日付 | 発表主体 | 内容 |
|---|---|---|
| 2025-11-29 | 発見者 | Metaへ報告 |
| 2025-12-03 | React・Vercel | 公表・初回修正版 |
| 2025-12-04 | AWS | 国家関与グループの悪用を報告 |
| 2025-12-05 | CISA | KEVへ追加(期限12-12) |
| 2025-12-11 | React | CVE-2025-55183・55184 |
| 2025-12-12 | React | CVE-2025-67779(修正漏れ) |
| 2025-12-12 | Unit 42 | KSwapDoorを公表 |
| 2026-01-26 | React | CVE-2026-23864(DoS) |
| 2026-04-08 | React | CVE-2026-23869(DoS) |
| 2026-05-06 | React | CVE-2026-23870(DoS) |
| 2026-07-21 | React | CVE-2026-44907(DoS・最新) |
日付はNVDの公開日、またはReact公式ブログの日付です。CVE-2025-55183(CVSS 5.3)は、細工したリクエストでServer Functionのソースコードが返ってしまう情報漏えいで、React公式の続報で公表されました。残る6件はいずれもCVSS 7.5のDoSで、サーバーの無限ループ、メモリ不足、CPUの占有を起こします。最新のCVE-2026-44907のアドバイザリにより、修正版は19.0.8・19.1.9・19.2.8になりました。
後続CVEをGitHub Advisory DatabaseとNVDから自分で追う方法
この先も続報が出る前提で、自分で一覧を取れるようにしておくと確実です。GitHub CLIの gh api でRSCパッケージのアドバイザリを新しい順に並べ、気になるCVEはNVDのAPIで公開日と評価を確かめます。
# RSC パッケージに登録されたアドバイザリを新しい順に一覧する(GitHub CLI が必要)
gh api "/advisories?ecosystem=npm&affects=react-server-dom-webpack&per_page=50" \
--jq '.[] | [.published_at[:10], .cve_id, .severity,
([.vulnerabilities[] | select(.package.name=="react-server-dom-webpack")
| .vulnerable_version_range + " => " + (.first_patched_version // "")] | join(" ; "))] | @tsv'
# CVE 単位で NVD の登録内容(CVSS・公開日・状態)を取得する
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2025-55182"
2026年10月2日に実行した結果の抜粋です。8行(React2Shell本体と後続7件)が返り、最上段の修正版が現在の推奨版になります。
2026-07-24 CVE-2026-44907 high >= 19.0.0, < 19.0.8 => 19.0.8 ; >= 19.1.0, < 19.1.9 => 19.1.9 ; >= 19.2.0, < 19.2.8 => 19.2.8
2026-05-11 CVE-2026-23870 high >= 19.0.0, < 19.0.6 => 19.0.6 ; >= 19.1.0, < 19.1.7 => 19.1.7 ; >= 19.2.0, < 19.2.6 => 19.2.6
(中略)
2025-12-03 CVE-2025-55182 critical >= 19.1.0, < 19.1.2 => 19.1.2 ; = 19.2.0 => 19.2.1 ; = 19.0.0 => 19.0.1
Next.js本体にも、2026年8月25日に未認証のリモートコード実行が2件公表され、15.5.24と16.3.3で直りました。npmの配布タグでは、2026年10月2日時点のlatestが16.3.8、backportが15.5.27です。なおNext.js公式の9月30日の告知によると、CriticalとHighの各1件は上流の依存の都合で修正が延期されており、この時点では未修正です。
React2Shellから導く依存ライブラリ管理と継続更新の判断基準
この件で明らかになったのは、フレームワークに同梱された部品の脆弱性は、利用者からは見えにくいという点です。依存関係の点検を、直接書いたパッケージだけで済ませている組織は見直しが必要です。
初回修正版で止めないための継続的な追跡体制と診断を外部に任せる場面
判断を言い切ります。RSCを使うアプリでは、初回修正版への更新で対応完了とせず、少なくとも月1回は上の一覧を見直してください。7件の後続CVEのうち4件は2026年に入ってから出ており、最新のCVE-2026-44907は初回修正の7か月半後です。2025年12月の対応記録だけでは現在の安全を説明できません。依存関係を継続的に洗い出す仕組みはSCA(ソフトウェア構成分析)の仕組みと導入判断で整理しています。
一方、社内に閉じたPages Routerだけのアプリにまで、RCEと同じ緊急度で夜間更新を求めるのは過剰です。公開範囲とApp Routerの利用有無で優先度を分けます。自社アプリが侵入を受けていないか、更新後の構成に別の穴が無いかを第三者に確かめたい場合は、一創の脆弱性診断・セキュリティ診断で、Webアプリケーションとクラウド設定の両面から診断しています。
よくある質問
CVE-2025-55182について寄せられやすい質問に答えます。
React2ShellとCVE-2025-55182は同じものですか?
同じです。React2Shellは発見者が付けた通称で、正式な識別子がCVE-2025-55182です。公開時にNext.js向けに割り当てられたCVE-2025-66478は、同じ原因の重複としてNVDで取り下げられました。社内の管理表では、CVE-2025-55182の1行にまとめて追跡すれば足ります。
Next.js 13や14の安定版を使っていても危険ですか?
React2Shell(リモートコード実行)の対象外です。Next.js公式は13.x、14.x安定版、Pages Router、Edge Runtimeを対象外としています。ただし後続のDoS(CVE-2025-55184とCVE-2025-67779)は13.3〜14.2.34が対象で、14.2.35が修正版です。2026年の修正は15.5系と16系にしか出ていないため、移行の計画も合わせて立ててください。
React本体(react・react-dom)を更新すれば直りますか?
直りません。脆弱性があるのはRSCを実装したreact-server-dom-webpack・-parcel・-turbopackで、React本体の版は判定に使いません。Next.jsの場合はRSCの実装が本体に同梱されているため、next を修正版へ上げることで直ります。
WAFやホスティング事業者の対策だけで防げますか?
防げるとは言えません。React公式はホスティング事業者と一時的な緩和を入れたと説明したうえで、「これに頼らず、すぐに更新すること」と書いています。Next.js公式でも、回避策は無いという説明です。WAFは既知の攻撃文字列に合わせたもので、変形した攻撃が通る余地が残ります。
すでに修正版に上げていれば、侵入の確認は不要ですか?
公開した時点から更新までに空白があれば、確認が必要です。Next.js公式は、2025年12月4日13時(米太平洋時間)の時点で未修正のまま公開していたアプリについて、更新後にシークレットをすべて再発行するよう求めています。手順はReact2Shellの対応手順の事後対応の章にまとめています。
関連記事
- React2Shell(CVE-2025-55182)の対応手順:版の確認・更新・シークレット再発行
- React Server Components(RSC)とは:RSCの仕組みと使い分け
- RSC Payload(RSCペイロード)とは:Flight形式の中身
- CVSSとは:深刻度スコアの見方
- SCAとは:依存関係の脆弱性を継続的に洗い出す仕組み