12月4日、React公式ブログが「Critical Security Vulnerability in React Server Components – React」と題した記事を公開した。この記事では、React Server Componentsに影響する重大なリモートコード実行(RCE)脆弱性について詳しく紹介されている。以下に、その内容を紹介する。
React Server Componentsに影響する重大なRCE脆弱性が判明
Reactチームは、認証不要でリモートコード実行が可能となる深刻な脆弱性(CVE-2025-55182)がReact Server Componentsに存在することを明らかにした。脆弱性スコアはCVSS 10.0と極めて高く、影響範囲も広い。
問題は、ReactがServer Functionエンドポイント向けのペイロードを復号する際の処理に欠陥があり、攻撃者が細工したHTTPリクエストを送ることで任意コードがサーバー上で実行されてしまう点にある。
アプリがServer Functionを実装していない場合でも、React Server Componentsをサポートしているだけで影響を受ける可能性がある。
脆弱性は以下のReactバージョンに存在する。
- 19.0
- 19.1.0
- 19.1.1
- 19.2.0
即時対応が必要だ
記事では、以下の修正版へのアップグレードが強く推奨されている。
- React 19.0.1
- React 19.1.2
- React 19.2.1
サーバーを使わないReactアプリケーションや、RSCをサポートしない独自構成の場合は影響を受けない。ただし、多くの主要フレームワーク・バンドラが該当パッケージを依存関係に含んでいるため、多くのReactベースのプロジェクトが影響を受ける可能性が高い。
影響を受けるフレームワーク・バンドラ
以下のフレームワーク・ツールチェーンが影響を受けるとされている。
- next
- react-router
- waku
- @parcel/rsc
- @vitejs/plugin-rsc
- rwsdk
アップグレード手順は順次更新される予定だ。
ホスティングプロバイダの暫定対策
Reactチームは複数のホスティングプロバイダと連携し一時的な緩和策を適用している。ただし記事では「これらの対策に依存すべきでなく、必ずアップデートすべきだ」と注意を促している。
脆弱性の技術概要
React Server Functionsはクライアントからサーバー上の関数を呼び出すための仕組みである。
クライアントの要求はHTTPリクエストとしてサーバーに渡され、React側で関数呼び出しへ変換される。
問題の脆弱性では、攻撃者が任意のServer Functionエンドポイントに対して細工したリクエストを送り、Reactによる逆シリアライズ処理を悪用してサーバー側で任意コードを実行できる。
修正版が広く展開されるまで、詳細な技術情報は非公開とされている。
フレームワーク別アップデート方法
以下に、記事で提示されたアップグレード手順をまとめる。
Next.js
npm install next@15.0.5 // for 15.0.x
npm install next@15.1.9 // for 15.1.x
npm install next@15.2.6 // for 15.2.x
npm install next@15.3.6 // for 15.3.x
npm install next@15.4.8 // for 15.4.x
npm install next@15.5.7 // for 15.5.x
npm install next@16.0.7 // for 16.0.x
もしNext.js 14.3.0-canary.77、もしくは最新のcanaryリリースを使っている場合は、最新の14.xステーブルバージョンにダウングレードしてほしい。
React Router
npm install react@latest
npm install react-dom@latest
npm install react-server-dom-parcel@latest
npm install react-server-dom-webpack@latest
npm install @vitejs/plugin-rsc@latest
Expo
npm install react@latest react-dom@latest react-server-dom-webpack@latest
Redwood SDK
npm install react@latest react-dom@latest react-server-dom-webpack@latest
Waku
npm install react@latest react-dom@latest react-server-dom-webpack@latest
@vitejs/plugin-rsc
npm install react@latest react-dom@latest @vitejs/plugin-rsc@latest
react-server-dom-parcel
npm install react@latest react-dom@latest react-server-dom-parcel@latest
react-server-dom-turbopack
npm install react@latest react-dom@latest react-server-dom-turbopack@latest
react-server-dom-webpack
npm install react@latest react-dom@latest react-server-dom-webpack@latest
報告から公開までのタイムライン
- 11月29日:Lachlan Davidson氏がMeta Bug Bounty経由で脆弱性を報告
- 11月30日:Metaのセキュリティ研究者が確認し、Reactチームと修正対応を開始
- 12月1日:修正が完了し、各プロジェクト・ホスティングプロバイダと検証を実施
- 12月3日:修正版がnpmで公開され、脆弱性がCVE-2025-55182として公表
詳細はCritical Security Vulnerability in React Server Components – Reactを参照していただきたい。