React Server Components におけるサービス拒否攻撃とソースコード露出
December 11, 2025 by The React Team
セキュリティ研究者が先週の重大な脆弱性に対するパッチをテストする過程で、React Server Components における 2 つの脆弱性を追加で発見し、開示しました。
これらの新しい脆弱性はリモートコード実行を許すものではありません。React2Shell に対するパッチはリモートコード実行の悪用を防止するために引き続き有効です。
新しい脆弱性は以下のように公開されています。
- Denial of Service - High Severity: CVE-2025-55184 and CVE-2025-67779 (CVSS 7.5)
- Source Code Exposure - Medium Severity: CVE-2025-55183 (CVSS 5.3)
新たに開示された脆弱性の深刻さを鑑み、直ちにアップグレードすることを推奨します。
これらの脆弱性の詳細については、修正のロールアウトが完了した後に提供される予定です。
直ちに対応を
これらの脆弱性は、CVE-2025-55182 と同じパッケージおよびバージョンに存在します。
以下のパッケージのバージョン 19.0.0、19.0.1、19.0.2、19.1.0、19.1.1、19.1.2、19.1.2、19.2.0、19.2.1、および 19.2.2 が該当します。
修正はバージョン 19.0.3、19.1.4、および 19.2.3 にバックポートされています。上記のパッケージを使用している場合は、直ちに修正済みバージョンのいずれかにアップグレードしてください。
以前と同様、アプリの React コードがサーバを使用していない場合、アプリはこれらの脆弱性の影響を受けません。アプリが React Server Components をサポートするフレームワーク、バンドラ、またはバンドラプラグインを使用していない場合、アプリはこれらの脆弱性の影響を受けません。
影響を受けるフレームワークとバンドラ
一部の React フレームワークやバンドラが、脆弱性のある React パッケージに依存しているか、peer dependency として依存しているか、あるいはそれらを含んでいました。影響を受ける React フレームワークやバンドラは以下の通りです:next、react-router、waku、@parcel/rsc、@vite/rsc-plugin、rwsdk
アップグレード方法について、前回の記事の手順を参照してください。
ホスティングプロバイダによる緩和策
以前と同様、我々は多くのホスティングプロバイダと協力し、一時的な緩和策 (mitigation) を適用しています。
ただしアプリの保護のためにこれらに依存しないでください。引き続き直ちにアップデートを適用するべきです。
React Native
モノレポや react-dom を使用していない React Native ユーザの場合、react バージョンは package.json で固定されているはずですので、追加の手順は必要ありません。
モノレポで React Native を使用している場合は、以下のパッケージがインストールされている場合にそれらのみを更新してください。
react-server-dom-webpackreact-server-dom-parcelreact-server-dom-turbopack
これはセキュリティ上の問題を緩和するために必要ですが、react および react-dom を更新する必要はなく、そのため React Native でのバージョン不一致エラーが発生することはありません。
詳細についてはこの issue を参照してください。
高深刻度:サービス拒否攻撃
CVE: CVE-2025-55184 および CVE-2025-67779 Base Score: 7.5 (High)
セキュリティ研究者は、悪意のある HTTP リクエストを作成して任意のサーバ関数 (Server Function) エンドポイントに対して送信することで、React がそれをデシリアライズする際に、サーバプロセスをハングさせて CPU を消費する無限ループを引き起こすことができることを発見しました。アプリが React のサーバ関数のエンドポイントを実装していない場合でも、React Server Components をサポートしている場合は脆弱性の影響を受ける可能性があります。
これにより、攻撃者がユーザによる製品へのアクセスを不能にし、サーバ環境のパフォーマンスに影響を与えうる手段が生じます。
本日公開されたパッチは、無限ループを防ぐことでこの問題を緩和します。
中深刻度:ソースコード露出
CVE: CVE-2025-55183 Base Score: 5.3 (Medium)
セキュリティ研究者は、脆弱なサーバ関数に送信された悪意のある HTTP リクエストが、安全でない方法で任意のサーバ関数のソースコードを返す可能性があることを発見しました。悪用には、明示的または暗黙的に引数の文字列化を行い露出するサーバ関数の存在が必要です。
'use server';
export async function serverFunction(name) {
const conn = db.createConnection('SECRET KEY');
const user = await conn.createUser(name); // implicitly stringified, leaked in db
return {
id: user.id,
message: `Hello, ${name}!` // explicitly stringified, leaked in reply
}}攻撃者は以下のような情報を漏洩させる可能性があります。
0:{"a":"$@1","f":"","b":"Wy43RxUKdxmr5iuBzJ1pN"}
1:{"id":"tva1sfodwq","message":"Hello, async function(a){console.log(\"serverFunction\");let b=i.createConnection(\"SECRET KEY\");return{id:(await b.createUser(a)).id,message:`Hello, ${a}!`}}!"}本日公開されたパッチは、サーバ関数のソースコードが文字列化されるのを防ぎます。
タイムライン
- 12 月 3 日:Andrew MacPherson 氏が Vercel および Meta Bug Bounty に漏洩の問題を報告。
- 12 月 4 日:RyotaK 氏が Meta Bug Bounty に DoS 問題を初期報告。
- 12 月 6 日:React チームが両方の問題を確認し、調査を開始。
- 12 月 7 日:初期の修正が作成され、React チームが新しいパッチの検証と計画を開始。
- 12 月 8 日:影響を受けるホスティングプロバイダとオープンソースプロジェクトに通知。
- 12 月 10 日:ホスティングプロバイダの緩和策が導入、パッチの検証が完了。
- 12 月 11 日:Shinsaku Nomura 氏が Meta Bug Bounty に追加の DoS を報告。
- 12 月 11 日:パッチが公開され、CVE-2025-55183 および CVE-2025-55184 として一般公開。
- 12 月 11 日:不足していた DoS のケースが内部で発見され、修正が適用され CVE-2025-67779 として一般公開。
謝辞
ソースコード漏洩を報告してくださった Andrew MacPherson (AndrewMohawk) 氏、サービス拒否攻撃の脆弱性を報告してくださった GMO Flatt Security Inc の RyotaK 氏および株式会社ビットフォレストの Shinsaku Nomura 氏に感謝します。