React Server Components における重大なセキュリティ脆弱性

December 3, 2025 by The React Team


React Server Components に、認証不要のリモートコード実行の脆弱性が存在します。

直ちにアップグレードすることを推奨します。


11 月 29 日、Lachlan Davidson 氏が React のセキュリティ脆弱性を報告しました。これは、React Server Function のエンドポイントに送信されたペイロードを React がデコードする際の欠陥を悪用することで、未認証状態でのリモートコード実行を可能にするものです。

アプリが React のサーバ関数 (Server Function) のエンドポイントを実装していない場合でも、React Server Components をサポートしている場合は脆弱性の影響を受ける可能性があります。

この脆弱性は CVE-2025-55182 として公開されており、CVSS スコアは 10.0 です。

以下のパッケージのバージョン 19.0、19.1.0、19.1.1、および 19.2.0 に脆弱性が存在します。

直ちに対応を

バージョン 19.0.119.1.2、および 19.2.1 で修正が導入されました。上記のパッケージを使用している場合は、直ちに修正済みバージョンのいずれかにアップグレードしてください。

アプリの React コードがサーバを使用していない場合、この脆弱性の影響は受けません。アプリが React Server Components をサポートするフレームワーク、バンドラ、またはバンドラプラグインを使用していない場合、この脆弱性の影響は受けません。

影響を受けるフレームワークとバンドラ

一部の React フレームワークやバンドラが、脆弱性のある React パッケージに依存しているか、peer dependency として依存しているか、あるいはそれらを含んでいました。影響を受ける React フレームワークやバンドラは以下の通りです:nextreact-routerwaku@parcel/rsc@vitejs/plugin-rscrwsdk

アップグレード方法に関する指示が利用可能になり次第、この記事を更新します。

ホスティングプロバイダによる緩和策

我々は多くのホスティングプロバイダと協力し、一時的な緩和策 (mitigation) を適用しています。

ただしアプリの保護のためにこれらに依存しないでください。直ちにアップデートを適用するべきです。

脆弱性の概要

React サーバ関数 を使用すると、クライアントからサーバ上の関数を呼び出すことができます。React コードがクライアントとサーバの両方で実行できるよう、React はフレームワークやバンドラが使用する統合ポイントとツールを提供しています。React はクライアント上で起きたリクエストを HTTP リクエストに変換し、それがサーバに転送されます。サーバ上では、React はこの HTTP リクエストを関数呼び出しに変換して、必要に応じてデータをクライアントに返します。

認証されていない攻撃者が任意のサーバ関数エンドポイントに対して悪意のある HTTP リクエストを作成することで、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 リリースにダウングレードしてください。

npm install next@14

詳細は Next.js の変更履歴 を参照してください。

React Router

React Router の安定前の 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

タイムライン

  • 11 月 29 日: Lachlan Davidson 氏が Meta Bug Bounty を通じて脆弱性を報告。
  • 11 月 30 日: Meta のセキュリティ研究者が確認し、React チームと協力して修正作業を開始。
  • 12 月 1 日: 修正が作成され、React チームは影響を受けるホスティングプロバイダやオープンソースプロジェクトと協力して修正を検証、緩和策を導入、修正のロールアウトを開始。
  • 12 月 3 日: 修正が npm に公開され、CVE-2025-55182 として一般公開。

謝辞

この脆弱性を発見・報告し、修正に協力してくださった Lachlan Davidson 氏に感謝します。