ReactのServer Components用パッケージにある、認証不要でリモートコード実行に至り得るデシリアライズの脆弱性の解説です。何が起きるのか・影響範囲・対応策を、攻撃の再現手順は伏せて防御目線でまとめます。
- CVE
- CVE-2026-126187(GHSA-xqc2-xf4c-x3h3。React: Unauthenticated Remote Code Execution in React Server Components)
- 重大度
- CVSS v4.0 9.5(Critical。ベクターは AV:N/AC:L/AT:P/PR:N/UI:N。GitHubが付与)。NVDはまだ分析前(2026年11月11日時点)
- 種別
- 信頼できないデータのデシリアライズ(CWE-502)
- 影響
- 細工したデータによる認証不要のリモートコード実行。ただし勧告は、複数の型付き配列と攻撃者の制御する値を応答で運ぶ、極めてまれな場合に限るとする
- 対象
- react-server-dom-webpack・react-server-dom-parcel・react-server-dom-turbopack の 19.0.0〜19.0.8、19.1.0〜19.1.9、19.2.0〜19.2.8、19.3.0
- 修正
- 19.0.9 / 19.1.10 / 19.2.9 / 19.3.1(2026年10月14日リリース)
- 公開日
- 2026年11月10日(CVE・GitHub勧告)
- 悪用状況
- 悪用の記載は確認できず。KEV未掲載(2026年11月12日時点)
放置の危険度
認証が要らず、成功するとサーバー上でコードを実行されます(機密性・完全性・可用性のすべてが高い影響)。条件が限定的でも、Webに公開されたサーバーで起きる欠陥は、公開後に調べられやすくなります。公開済みの修正版へ上げる作業は小さいので、条件の厳しさに頼って先送りする理由は薄いと当サイトは考えます。
どんな脆弱性か
GitHubの勧告は、Server Componentsに対応するフレームワークを狙った細工したデータで、リモートコード実行に至り得ると説明しています。CWE-502(信頼できないデータのデシリアライズ)に分類されます。
- 認証は要りません(PR:N)。ネットワーク経由で、利用者の操作も要りません(UI:N)。
- 勧告は、影響するのは、複数の型付き配列と攻撃者の制御する値を応答で運ぶ、極めてまれな場合に限ると説明しています。CVSS v4の AT:P(攻撃に前提条件がある)は、この限定を表していると読めます(当サイトの解釈)。
- Server Componentsは、Reactのコードをサーバー側で動かす仕組みです。この欠陥は、その通信を処理するパッケージにあります。
- 細工したデータの作り方や、条件の細部は、勧告にも書かれておらず、当サイトも記載しません。
- 同じ仕組みでは過去にも重大な欠陥が出ています。経緯はNext.jsとReactの脆弱性の全体像にまとめています。
影響範囲
| 項目 | 内容 |
|---|---|
| パッケージ | react-server-dom-webpack / react-server-dom-parcel / react-server-dom-turbopack |
| 影響を受ける版 | 19.0.0〜19.0.8 / 19.1.0〜19.1.9 / 19.2.0〜19.2.8 / 19.3.0 |
| 修正版 | 19.0.9 / 19.1.10 / 19.2.9 / 19.3.1 |
| 影響を受けないもの | ReactのコードがServerを使わないアプリ。Server Componentsに対応するフレームワーク・バンドラー・プラグインを使っていないアプリ(勧告の記載) |
| 回避策・緩和策 | 勧告に記載を確認できなかった |
| Next.js | 公式な記載は確認できず。依存の react-server-dom-* の版を確かめる |
- 版の範囲は、GitHubの勧告本文のものです。CVEの記録(GitHubが登録)の文面は版の書き方が異なり、本文にも誤記があるため、修正版の番号は勧告本文とReactのリリースで照合しました。
- 3つのパッケージは、使っているバンドラー(webpack・Parcel・Turbopack)に応じて入ります。複数入っている場合は、すべて確かめてください。
自分が対象か確かめる方法
Server Componentsを使っているか確認する
Next.jsのApp Routerなど、Server Componentsに対応するフレームワークを使っているかを確かめます。使っていない(ブラウザ側だけでReactを動かしている)アプリは、勧告上は影響を受けません。
react-server-dom-* の版をロックファイルで確認する
package-lock.json・pnpm-lock.yaml・yarn.lock で react-server-dom-webpack・react-server-dom-parcel・react-server-dom-turbopack を探し、版が上の「影響を受ける版」に入るかを見ます。直接入れていなくても、フレームワークの依存として入っていることがあります。依存を機械的に調べる方法はosv-scannerで依存を機械監視するにまとめています。
フレームワークの版を確認する
Next.jsなどは、react-server-dom-* を自前で同梱・固定している場合があります。フレームワークの公式なリリースノートと勧告で、このCVEへの対応が出ているかを確かめてください。当サイトが調べた時点(2026年11月12日)では、Next.jsの公式な記載は見つかっていません。
今日やること
react-server-dom-* を修正版以降へ上げる(最優先)
使っている系列に合わせて、19.0.9、19.1.10、19.2.9、19.3.1 のいずれか以降にします。直接依存なら、パッケージの版を上げてロックファイルを更新します。
フレームワーク経由の場合は、フレームワークの更新を確認する
フレームワークが内部で版を固定している場合は、フレームワーク側の更新を待つか、公式の案内に従います。公式の案内が見つからない間は、依存の版を自分で確かめ、必要なら提供元に問い合わせてください。版の上書き(overrides)は、フレームワークの動作確認を済ませてから行います。
更新後に動作を確認し、デプロイする
Server Componentsの画面・Server Actionsの動作を確認してから、本番へデプロイします。更新後にロックファイルの版を再確認します。
ログを確認する
更新前の期間に、Server Componentsのエンドポイントへ不審なリクエストや、想定しないサーバーエラーがなかったかを確かめます。悪用の記載はありませんが、確認できる材料はログだけです。
悪用状況
- 勧告にも、CVEの記録にも、悪用の言及は確認できませんでした。
- CISAのKEVに、このCVEは載っていません(KEVの版 2026.11.10、2026年11月12日に確認)。
- NVDの状態は「Received(受付済み)」で、分析は終わっていません。CVSS v4の9.5はGitHub(CNA)が付けたものです。
- 修正版のリリース(10月14日)は、CVE・勧告の公開(11月10日)の約4週間前です。リリースノートの記載は「通信の仕組みの改善」程度で、脆弱性とは書かれていません。
出典
- GitHub — GHSA-xqc2-xf4c-x3h3 React: Unauthenticated Remote Code Execution in React Server Components(影響を受ける版・修正版・影響しない条件・CVSS v4 9.5)
- React — Reactリポジトリのセキュリティ勧告
- React — v19.2.9 のリリース(19.0.9・19.1.10・19.3.1も同日リリース)
- CVE.org — CVE-2026-126187(2026年11月10日公開)
- NVD — CVE-2026-126187(Received)
- Next.js — vercel/next.js のセキュリティ勧告(このCVEへの記載は確認できず)
Next.jsなどへの影響は、公式の記載が確認できていないため断定していません。最終確認:2026年11月12日。
次に読む
- 全体像:Next.jsとReactの脆弱性の全体像 / Next.jsを安全に運用する
- 実務:脆弱性対応の実務手順 / osv-scannerで依存を機械監視する
- 判断:CVSS・EPSS・KEVで優先順位を決める
- 用語:RCEとは / CVSSとは