React Server Componentsにおける重大なセキュリティ脆弱性
公開日: 2025-12-03
著者: The React Team
重大:React Server Componentsに未認証のリモートコード実行(RCE)脆弱性が存在します。直ちにアップグレードすることを強く推奨します。
概要
- 2025年11月29日、Lachlan Davidson氏が、ReactがReact Server Functionエンドポイントに送られるペイロードをデコードする方法の欠陥を悪用することで、未認証のリモートコード実行を可能にするセキュリティ脆弱性を報告しました。
- アプリがReact Server Functionエンドポイントを実装していない場合でも、React Server Componentsをサポートしていると脆弱になる可能性があります。
- この脆弱性はCVE-2025-55182として公開され、CVSSは10.0と評価されています。
影響のあるパッケージとバージョン
脆弱性は以下のパッケージの次のバージョンに存在します。
react-server-dom-webpack — 19.0, 19.1.0, 19.1.1, 19.2.0
react-server-dom-parcel — 19.0, 19.1.0, 19.1.1, 19.2.0
react-server-dom-turbopack — 19.0, 19.1.0, 19.1.1, 19.2.0
即時の対応が必要です
修正は次のバージョンで導入されました:19.0.1, 19.1.2, 19.2.1。
- 上記パッケージを使用している場合は、直ちに修正済みバージョンにアップグレードしてください。
- アプリのReactコードがサーバーを使用していない場合は、この脆弱性の影響はありません。
- フレームワーク、バンドラー、またはReact Server Componentsをサポートするバンドラープラグインを使用していない場合も影響はありません。
影響を受けるフレームワークとバンドラー
いくつかのReactフレームワークおよびバンドラーが、脆弱なReactパッケージに依存、peerDependenciesを持つ、またはそれらを含んでいました。影響を受ける主なプロジェクトは次のとおりです。
next
react-router
waku
@parcel/rsc
@vitejs/plugin-rsc
rwsdk
下の「Update Instructions」で各プロジェクトのアップグレード方法を確認してください。
ホスティングプロバイダの緩和策
複数のホスティングプロバイダと協力して一時的な緩和策を適用しました。ただし、これらに依存せず、必ず直ちに自分のアプリをアップデートしてください。
脆弱性の概要
React Server Functionsは、クライアントがサーバー上の関数を呼び出すことを可能にします。Reactはフレームワークやバンドラーがクライアントとサーバーの両方でReactコードを実行できるようにするための統合ポイントとツールを提供します。
- クライアント側では、ReactはリクエストをHTTPリクエストに変換してサーバーに転送します。
- サーバー側では、ReactはHTTPリクエストを関数呼び出しに変換し、クライアントに必要なデータを返します。
未認証の攻撃者は、任意のServer Functionエンドポイントに対して悪意あるHTTPリクエストを作成し、それがReactによってデシリアライズされるとサーバー上でリモートコード実行が可能になる恐れがあります。
修正の展開が完了するまで、脆弱性の詳細は公開されません。
更新手順(Update Instructions)
注:これらの手順は以下の新しい脆弱性も含むように更新されています:
- Denial of Service - High Severity: CVE-2025-55184 と CVE-2025-67779(CVSS 7.5)
- Source Code Exposure - Medium Severity: CVE-2025-55183(CVSS 5.3)
- Denial of Service - High Severity: 2026-01-26 CVE-2026-23864(CVSS 7.5)
詳細はフォローアップのブログ記事を参照してください。(更新:2026年1月26日)
Next.js
すべてのユーザーは自分のリリースラインで最新の修正済みバージョンにアップグレードしてください。
npm install next@14.2.35 // for 13.3.x, 13.4.x, 13.5.x, 14.x
npm install next@15.0.8 // for 15.0.x
npm install next@15.1.12 // for 15.1.x
npm install next@15.2.9 // for 15.2.x
npm install next@15.3.9 // for 15.3.x
npm install next@15.4.11 // for 15.4.x
npm install next@15.5.10 // for 15.5.x
npm install next@16.0.11 // for 16.0.x
npm install next@16.1.5 // for 16.1.x
- Canary:
npm install next@15.6.0-canary.60 // for 15.x canary releases
- Canary:
npm install next@16.1.0-canary.19 // for 16.x canary releases
推奨されている修正済みバージョンの一覧: 15.0.8, 15.1.12, 15.2.9, 15.3.9, 15.4.10, 15.5.10, 15.6.0-canary.61, 16.0.11, 16.1.5
- Next.js 13 の 13.3 以降(13.3.x、13.4.x、13.5.x)を使用している場合は、
14.2.35 にアップグレードしてください。
next@14.3.0-canary.77 以降の canary を使用している場合は、最新の安定した 14.x リリースにダウングレードしてください:npm install next@14
最新の更新手順と詳細は Next.js ブログと変更ログを参照してください。
React Router
React Router の unstable RSC API を使用している場合、次の package.json 依存関係を存在するならアップグレードしてください:
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
緩和策の詳細については、expo.dev/changelog の記事を参照してください。
Redwood SDK
rwsdk は >=1.0.0-alpha.0 であることを確認してください。
- ベータ版の最新をインストールするには:
npm install rwsdk@latest
react-server-dom-webpack を最新に更新してください: npm install react@latest react-dom@latest react-server-dom-webpack@latest
- 詳細な移行手順は Redwood のドキュメントを参照してください。
Waku
react-server-dom-webpack を最新に更新してください: npm install react@latest react-dom@latest react-server-dom-webpack@latest
waku 本体もアップデートしてください: npm install waku@latest
- 詳細は Waku のアナウンスを参照してください。
@vitejs/plugin-rsc
- 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
React Native
- React Native をモノレポや
react-dom を使わずに単独で使用している場合、package.json で react のバージョンを固定していれば追加の手順は不要です。
- モノレポで React Native を使用している場合、影響を受けるパッケージがインストールされているなら、次のパッケージのみを更新してください:
react-server-dom-webpack
react-server-dom-parcel
react-server-dom-turbopack
これらの更新はセキュリティアドバイザリの緩和に必要ですが、react と react-dom を更新する必要はないため、React Nativeでのバージョン不一致エラーを引き起こしません。詳細は該当のIssueを参照してください。
タイムライン
- 11月29日: Lachlan Davidson氏がMeta Bug Bountyを通じて脆弱性を報告
- 11月30日: Metaのセキュリティ研究者が確認し、Reactチームと修正作業を開始
- 12月1日: 修正が作成され、Reactチームが影響を受けるホスティングプロバイダやOSSプロジェクトと連携して検証、緩和策の実装、修正の展開を開始
- 12月3日: 修正がnpmに公開され、CVE-2025-55182として公開
謝辞
この脆弱性の発見、報告、修正支援に関して Lachlan Davidson 氏に感謝します。
前回の「Denial of Service」と「Source Code Exposure」に関する案内、および「React Conf 2025 Recap」については元記事のリンクとフォローアップ記事を参照してください。