ReactのRSCに遠隔コード実行の脆弱性 19.2.9などへ上げる
Reactの開発チームは、サーバー側で画面の部品を組み立てる仕組み「React Server Components」のパッケージに、外から任意のコードを動かされ得る脆弱性「CVE-2026-126187」があると公表した。19.0.0から19.3.0までの一部が当たり、19.0.9、19.1.10、19.2.9、19.3.1で直った。
記事の内容を自社でどう進めるか、内容が固まっていない段階でも相談できます。仕事の相談
毎週 1 回、その週の記事から 5 本と実践の 1 本を選んでメールで届けます。ニュースレターを購読する(無料)

Reactの開発チームは10月15日(日本時間)、サーバー側で画面の部品を組み立てる仕組み「React Server Components(RSC)」に、外から任意のコードを動かされ得る脆弱性のセキュリティアドバイザリを出した。GitHubの脆弱性データベースは11月11日(日本時間)にこれを確認して載せた。当たるのはreact-server-dom-webpackなど3つのパッケージの19.0.0から19.3.0までの一部で、19.0.9、19.1.10、19.2.9、19.3.1のどれかへすぐ上げる必要がある。
3つのパッケージの19系が当たる
アドバイザリとデータベースの記録によると、影響と修正版は次のとおりだ。
- 対象のパッケージ: npmのパッケージ「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(アドバイザリの本文は19.0.9を「19.0.09」と書くが、データベースの記録は19.0.9)
- CVE番号: CVE-2026-126187
- 深刻度: CVSS 4.0で9.5(アドバイザリの評価)。認証も利用者の操作も要らない
- 中身: RSCに対応したフレームワークに細工した通信を送ると、サーバーの上で任意のコードを動かされ得る
アドバイザリは、当たるのは「応答が複数の型付き配列と、攻撃者が操れる値を運ぶ、ごくまれな場合」だとしている。CVSSの評価でも、攻撃には特定の前提条件が要るとされている。それでもアドバイザリは、すぐ上げるよう求めている。なお、Reactのコードをサーバーで動かさないアプリと、RSCに対応したフレームワーク、バンドラー、バンドラーのプラグインを使わないアプリは当たらない。
まず依存の版を確かめる
当たりを決めるのは3つのパッケージの版で、React本体のreactやreact-domの版ではない。アドバイザリの対象の一覧に、この2つは無い。アドバイザリは版の確かめ方を書いていない。npmで依存を入れているならnpmの一般的なコマンド「npm ls」にパッケージの名前を付けて流すと、入っている版と、どの依存が引き込んだかが出る。3つのパッケージのそれぞれで確かめたい。pnpmやYarnを使うならそれぞれの「why」のコマンドで同じことを見られる。ロックファイル(package-lock.jsonなど)に3つのパッケージの名前があるかを文字列で探すのも手早い。
版が当たる範囲にあれば、上げる必要がある。名前が出なくても、フレームワークがパッケージを自分の中に持っていることがある。
今の系列の修正版へ上げる
アドバイザリは、当たるパッケージを使っているなら、すぐ修正版のどれかへ上げるよう求めている。設定で避ける方法は書いていない。上げる先は、今の系列の修正版にする。19.2系なら19.2.9、19.3.0なら19.3.1だ。4つの修正版は同じ10月15日(日本時間)に出ており、19.2.9のリリースノートは、RSCの「通信の手順の改善」とだけ書く。
パッケージをアプリの依存として入れる形なら、アプリ側でパッケージの版を上げれば直る。例えばViteのプラグイン「@vitejs/plugin-rsc」は、npmの登録情報で、react-server-dom-webpackをアプリ側が入れる依存として求めている。npmの登録情報では、19.2.9のreact-server-dom-webpackは、reactとreact-domにも19系の19.2.9以上を求める。上げた後は、もう一度「npm ls」で3つのパッケージが修正版になったかを確かめ、サーバーを動かし直して本番に出す。
フレームワークがパッケージを自分の中に持つ形では、フレームワークの更新を待つことになる。Next.jsのnpmのパッケージは、中にreact-server-dom-webpackの写しを同梱している。そのNext.jsのアドバイザリの一覧にも、11月11日の時点でこの件のアドバイザリは無い。Next.jsの最新の安定版は、11月10日(日本時間)に出た16.4.6だ。使っているフレームワークのアドバイザリと更新を確かめたい。
悪用は確認されていない
CVE-2026-126187は、11月11日の時点で、米CISAの悪用を確認した脆弱性の一覧(KEV)に載っていない。KEVの最新の版は11月11日(日本時間)に出たものだった。アドバイザリにも悪用の報告は無い。それでも、CVSSの評価では認証も利用者の操作も要らないので、外に公開したサーバーは早く塞ぎたい。
SAGUSでも版を確かめた
SAGUSは、自社のサービスと開発の雛形のロックファイルで、3つのパッケージの版を文字列の検索で確かめた。Viteの上でRSCを動かす構成のいくつかが、react-server-dom-webpackの19.2.8を使っていた。どれもパッケージをアプリの依存として入れる形で、reactとreact-domとあわせてアプリの依存を19.2.9へ上げれば直る形だった。RSCのパッケージを使わない構成は当たらなかった。
編集部の見方
修正版が出てから、データベースに載るまで4週間近くかかった。その間、リリースノートは脆弱性の修正だと読めない書き方だった。だから編集部は、RSCを使うアプリを持つ開発者は、今日中にロックファイルで3つのパッケージの版を確かめるべきだと考える。ただ、フレームワークが同梱する版が当たるかは、各社のアドバイザリを待たないと分からない。その場合は、使っているフレームワークの更新を追いたい。
出典
に確認(日本時間)
- 外から任意のコードを動かされ得る脆弱性のセキュリティアドバイザリ(github.com)
- GitHubの脆弱性データベース(github.com)
- npm ls(docs.npmjs.com)
- 19.2.9のリリースノート(github.com)
- @vitejs/plugin-rsc(npmjs.com)
- Next.jsのアドバイザリの一覧(github.com)
- 16.4.6(github.com)
- 悪用を確認した脆弱性の一覧(KEV)(cisa.gov)
この記事は役に立ちましたか
ありがとうございます
ありがとうございます
関連記事
- Cloud Storage Manager
「Cloud Storage Manager」に認証なしの脆弱性 最新の1.2.9へ
- AutomatorWP
「AutomatorWP」のWebhooksに認可回避の脆弱性 管理者を乗っ取られ得る



