React Server Componentsにおける重大なセキュリティ脆弱性
2025年12月3日 by The React Team
React Server Componentsに認証不要のリモートコード実行脆弱性が存在します。直ちにアップグレードすることを推奨します。
11月29日、Lachlan DavidsonがReactのセキュリティ脆弱性を報告しました。この脆弱性は、ReactがReact Server Functionエンドポイントに送信されたペイロードをデコードする際の欠陥を悪用することで、認証不要のリモートコード実行を可能にします。アプリがReact Server Functionエンドポイントを実装していない場合でも、React Server Componentsをサポートしている場合は脆弱性の影響を受ける可能性があります。
この脆弱性はCVE-2025-55182として開示され、CVSS 10.0と評価されています。
脆弱性は以下のパッケージのバージョン19.0、19.1.0、19.1.1、19.2.0に存在します:
- react-server-dom-webpack
- react-server-dom-parcel
- react-server-dom-turbopack
緊急対応が必要
修正はバージョン19.0.1、19.1.2、19.2.1で導入されました。上記のパッケージを使用している場合は、直ちに修正済みバージョンのいずれかにアップグレードしてください。
アプリのReactコードがサーバーを使用していない場合、この脆弱性の影響は受けません。
アプリがReact Server Componentsをサポートするフレームワーク、バンドラー、またはバンドラープラグインを使用していない場合、この脆弱性の影響は受けません。
影響を受けるフレームワークとバンドラー
一部のReactフレームワークとバンドラーは、脆弱性のあるReactパッケージに依存している、ピア依存関係を持っている、または含んでいました。以下のReactフレームワークとバンドラーが影響を受けます:
next、react-router、waku、@parcel/rsc、@vitejs/plugin-rsc、rwsdk
これらのパッチにアップグレードする方法については、以下のアップデート手順を参照してください。
ホスティングプロバイダーによる軽減策
多数のホスティングプロバイダーと協力して一時的な軽減策を適用しました。これらに依存してアプリを保護すべきではなく、引き続き直ちにアップデートしてください。
脆弱性の概要
React Server Functionsにより、クライアントはサーバー上の関数を呼び出すことができます。Reactは、フレームワークとバンドラーがReactコードをクライアントとサーバーの両方で実行するために使用する統合ポイントとツールを提供します。Reactはクライアント上のリクエストをHTTPリクエストに変換し、サーバーに転送します。サーバー上で、ReactはHTTPリクエストを関数呼び出しに変換し、必要なデータをクライアントに返します。
認証されていない攻撃者は、任意のServer Functionエンドポイントに対して悪意のあるHTTPリクエストを作成し、Reactによってデシリアライズされる際にサーバー上でリモートコード実行を達成する可能性があります。
脆弱性の詳細は、修正の展開が完了した後に提供されます。
アップデート手順
注意 これらの手順は新しい脆弱性を含むように更新されました:
- Denial of Service - 高重要度:CVE-2025-55184およびCVE-2025-67779(CVSS 7.5)
- Source Code Exposure - 中重要度:CVE-2025-55183(CVSS 5.3)
- Denial of Service - 高重要度:2026年1月26日 CVE-2026-23864(CVSS 7.5)
詳細については、フォローアップブログ投稿を参照してください。
2026年1月26日更新。
Next.js
すべてのユーザーは、リリースラインの最新パッチバージョンにアップグレードする必要があります:
npm install next@14.2.35 // 13.3.x、13.4.x、13.5.x、14.x用
npm install next@15.0.8 // 15.0.x用
npm install next@15.1.12 // 15.1.x用
npm install next@15.2.9 // 15.2.x用
npm install next@15.3.9 // 15.3.x用
npm install next@15.4.11 // 15.4.x用
npm install next@15.5.10 // 15.5.x用
npm install next@16.0.11 // 16.0.x用
npm install next@16.1.5 // 16.1.x用
npm install next@15.6.0-canary.60 // 15.x canaryリリース用
npm install next@16.1.0-canary.19 // 16.x canaryリリース用
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ブログを、詳細については以前のchangelogを参照してください。
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@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
monorepoやreact-domを使用していないReact Nativeユーザーの場合、reactバージョンはpackage.jsonで固定されているはずで、追加の手順は必要ありません。
monorepoでReact Nativeを使用している場合は、インストールされている場合のみ影響を受けるパッケージをアップデートする必要があります:
- react-server-dom-webpack
- react-server-dom-parcel
- react-server-dom-turbopack
これはセキュリティアドバイザリを軽減するために必要ですが、reactとreact-domをアップデートする必要はないため、React Nativeでバージョン不一致エラーが発生することはありません。
詳細については、この問題を参照してください。
タイムライン
- 11月29日:Lachlan DavidsonがMeta Bug Bountyを通じてセキュリティ脆弱性を報告
- 11月30日:Metaセキュリティ研究者が確認し、修正についてReactチームとの作業を開始
- 12月1日:修正が作成され、Reactチームは影響を受けるホスティングプロバイダーとオープンソースプロジェクトと協力して修正の検証、軽減策の実装、修正の展開を開始
- 12月3日:修正がnpmに公開され、CVE-2025-55182として公開開示
謝辞
この脆弱性を発見、報告し、修正に協力してくれたLachlan Davidsonに感謝します。