Denial of Service and Source Code Exposure in React Server Components
発行日: December 11, 2025
作成者: The React Team
更新: January 26, 2026
セキュリティ研究者が、先週の重大な脆弱性のパッチを検証する過程で、React Server Componentsに関する追加の脆弱性を2件発見・公開しました。これらの新たな脆弱性はリモートコード実行を許すものではありません。React2Shellのパッチは依然としてリモートコード実行のエクスプロイトを緩和する効果があります。
公開された新しい脆弱性は次のとおりです。
- Denial of Service(高):CVE-2025-55184、CVE-2025-67779、CVE-2026-23864(CVSS 7.5)
- Source Code Exposure(中):CVE-2025-55183(CVSS 5.3)
重大度を踏まえ、直ちにアップグレードすることを推奨します。
注意: 以前に公開されたパッチには脆弱性が残っています。既に前回の脆弱性に対して更新済みの場合でも、再度更新が必要です。もし19.0.3、19.1.4、19.2.3に更新している場合、それらは不完全であり、再度アップデートする必要があります。アップグレード手順については前回の投稿の指示を参照してください。
即時対応が必要
これらの脆弱性は CVE-2025-55182 と同じパッケージおよびバージョンに存在します。対象は次のバージョンです。
19.0.0, 19.0.1, 19.0.2, 19.0.3, 19.1.0, 19.1.1, 19.1.2, 19.1.3, 19.2.0, 19.2.1, 19.2.2, 19.2.3 の以下パッケージ:
- react-server-dom-webpack
- react-server-dom-parcel
- react-server-dom-turbopack
修正はバックポートされ、次のバージョンで対処済みです: 19.0.4、19.1.5、19.2.4。上記いずれかのパッケージを使用している場合は、いずれかの固定バージョンに直ちにアップグレードしてください。
前回と同様に、アプリのReactコードがサーバーを使用していない場合、これらの脆弱性の影響はありません。また、フレームワーク、バンドラ、またはReact Server Componentsをサポートするバンドラプラグインを使用していない場合も影響はありません。
注意: 重大なCVEが公開された後、追随する脆弱性が発見されることは一般的です。重大な脆弱性が開示されると、研究者は隣接するコードパスを精査し、最初の緩和策が回避可能かどうかを試験します。このパターンはJavaScriptに限らず業界全体で見られます。例えば Log4Shell の後に追加のCVE(1、2)が報告されました。追加の公開は煩わしく感じられることもありますが、一般的に健全な対応サイクルの表れです。
影響を受けるフレームワークとバンドラ
一部のReactフレームワークやバンドラは、脆弱なReactパッケージに依存、peer dependencyを持つ、または脆弱なパッケージを含んでいました。影響を受けるものには次が含まれます:
- next
- react-router
- waku
- @parcel/rsc
- @vite/rsc-plugin
- rwsdk
アップグレード手順については前回の投稿の指示を参照してください。
ホスティングプロバイダによる緩和措置
前回と同様に、複数のホスティングプロバイダと連携して一時的な緩和策を適用しています。これらに依存してアプリを保護するべきではなく、直ちにアップデートしてください。
React Native
モノレポや react-dom を使用していない React Native ユーザーは、package.json に react バージョンを固定していれば追加の手順は不要です。モノレポで React Native を使用している場合は、影響を受けるパッケージのみを更新してください(インストールされている場合):
- react-server-dom-webpack
- react-server-dom-parcel
- react-server-dom-turbopack
これはセキュリティアドバイザリを緩和するために必要ですが、react と react-dom を更新する必要はなく、React Nativeでのバージョン不一致エラーは発生しません。詳細はこの issue を参照してください。
詳細
高重要度: 複数のDoS(CVE-2026-23864)
- Base Score: 7.5 (High)
- 日付: January 26, 2026
セキュリティ研究者は、React Server ComponentsにまだDoS脆弱性が残っていることを発見しました。これらの脆弱性は、Server Functionエンドポイントに対して細工されたHTTPリクエストを送信することでトリガーされ、サーバーのクラッシュ、メモリ不足例外、または過剰なCPU使用率を引き起こす可能性があります。影響は実際に呼ばれる脆弱なコードパス、アプリケーションの設定、およびアプリケーションコードに依存します。
2026年1月26日に公開されたパッチはこれらのDoS脆弱性を緩和します。
追加の修正: CVE-2025-55184に対する元の修正は不完全でした。これにより以前のバージョンが依然として脆弱な状態に残っていました。バージョン19.0.4、19.1.5、19.2.4は安全です。更新: January 26, 2026。
高重要度: DoS (CVE-2025-55184 と CVE-2025-67779)
セキュリティ研究者は、悪意のあるHTTPリクエストを任意のServer Functionsエンドポイントに送信でき、そのシリアライズ解除時にReactが無限ループを引き起こしてサーバープロセスをハングさせ、CPUを消費する可能性があることを発見しました。アプリがServer Functionエンドポイントを実装していなくても、React Server Componentsをサポートしている場合は脆弱である可能性があります。
これは、攻撃者が利用者のサービス利用を妨害(サービス拒否)し、サーバー環境にパフォーマンスへの影響を与えるベクターを生みます。今回公開されたパッチは無限ループを防ぐことで緩和します。
中程度: ソースコード露出 (CVE-2025-55183)
セキュリティ研究者は、脆弱なServer Functionに対して送信された悪意のあるHTTPリクエストが、Server Functionのソースコードを安全でない方法で返してしまう可能性を発見しました。エクスプロイトには、文字列化された引数を明示的または暗黙的に露出するServer Functionの存在が必要です。例:
'use server';
export async function serverFunction(name) {
const conn = db.createConnection('SECRET KEY');
const user = await conn.createUser(name);
return {
id: user.id,
message: `Hello, ${name}!`
}
}
攻撃者は次のような漏えいを引き起こせる可能性があります:
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}!`}}!" }
今回公開されたパッチは、Server Functionのソースコードを文字列化することを防ぎます。
注意: 露出するのはソースコード内にハードコードされたシークレットのみです。process.env.SECRET のような実行時のシークレットは影響を受けません。露出するコードの範囲はServer Function内部のコードに限定されますが、バンドラのインライン量によっては他の関数が含まれる場合があります。必ず本番バンドルで検証してください。
タイムライン
- December 3rd : Andrew MacPherson により Vercel と Meta Bug Bounty にリーク報告
- December 4th : 初期の DoS が RyotaK により Meta Bug Bounty に報告
- December 6th : Reactチームが両問題を確認し調査開始
- December 7th : 初期修正を作成し、Reactチームが検証・新パッチの計画を開始
- December 8th : 影響を受けるホスティングプロバイダとOSSプロジェクトに通知
- December 10th : ホスティングプロバイダの緩和策実施およびパッチの検証
- December 11th : Shinsaku Nomura により追加の DoS が Meta Bug Bounty に報告
- December 11th : CVE-2025-55183 と CVE-2025-55184 としてパッチ公開および公開開示
- December 11th : 内部で見つかった欠落していた DoS ケースを修正し、CVE-2025-67779 として公開開示
- January 26th : 追加の DoS ケースが発見・修正され、CVE-2026-23864 として公開開示
帰属 (Attribution)
ソースコード露出を報告してくれた Andrew MacPherson (AndrewMohawk) に感謝します。Denial of Service 脆弱性を報告してくれたのは、GMO Flatt Security Inc の RyotaK と Bitforest Co., Ltd. の Shinsaku Nomura です。追加の DoS 脆弱性を報告してくれたのは、Winfunc Research の Mufeed VH、Joachim Viide、GMO Flatt Security Inc の RyotaK、Tencent Security YUNDING LAB の Xiangwei Zhang です。
前の記事: The React Foundation: A New Home for React
次の記事: Critical Security Vulnerability in React Server Components