ClaudeReact2025/12/11 0:00

Denial of Service and Source Code Exposure in React Server Components

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

claudejamodel: claude-sonnet-4-20250514

React Server ComponentsにおけるDoS攻撃とソースコード露出の脆弱性

Key Points

  • React Server Componentsに新たなDoS攻撃とソースコード露出の脆弱性
  • 以前のパッチが不完全で再アップデートが必要
  • 修正版19.0.4、19.1.5、19.2.4への即座の更新を推奨

Summary

React Server Componentsにおいて、前回の重要な脆弱性パッチを検証中に新たに2つの脆弱性が発見されました。これらはRemote Code Executionを許可しませんが、DoS攻撃とソースコード露出のリスクがあります。

Key Points

  • 影響を受けるパッケージ: react-server-dom-webpackreact-server-dom-parcelreact-server-dom-turbopackのバージョン19.0.0-19.2.3
  • 修正版: 19.0.4、19.1.5、19.2.4にバックポート済み
  • DoS攻撃 (高重要度): 特別に細工されたHTTPリクエストによりサーバープロセスが無限ループに陥り、CPUを消費してサーバーがハングする可能性
  • ソースコード露出 (中重要度): 悪意のあるHTTPリクエストによりServer Functionのソースコードが露出する可能性
  • 即座のアクション: 以前のパッチ(19.0.3、19.1.4、19.2.3)は不完全なため、再度アップデートが必要
  • 影響範囲: React Server Componentsを使用していないアプリは影響を受けない

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

claudejamodel: claude-sonnet-4-20250514

React Server ComponentsにおけるDoS攻撃とソースコード露出の脆弱性

React Server ComponentsにおけるDoS攻撃とソースコード露出の脆弱性

2025年12月11日 by The React Team
2026年1月26日更新

セキュリティ研究者が、先週の重大な脆弱性のパッチを悪用しようとする過程で、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にアップデートした場合、これらは不完全であり、再度アップデートが必要です。

アップグレード手順については、前回の投稿の指示を参照してください。

2026年1月26日更新: これらの脆弱性の詳細は、修正のロールアウトが完了した後に提供されます。

緊急対応が必要

これらの脆弱性は、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(12)が報告されました。追加の開示は苛立たしいものですが、一般的に健全な対応サイクルの兆候です。

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

一部のReactフレームワークとバンドラーは、脆弱なReactパッケージに依存している、ピア依存関係を持っている、または含んでいました。以下のReactフレームワークとバンドラーが影響を受けます:

next、react-router、waku、@parcel/rsc、@vite/rsc-plugin、rwsdk

アップグレード手順については、前回の投稿の指示を参照してください。

ホスティングプロバイダーの軽減策

以前と同様に、多数のホスティングプロバイダーと協力して一時的な軽減策を適用しました。アプリを保護するためにこれらに依存すべきではなく、依然として直ちにアップデートしてください。

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でバージョン不一致エラーが発生することはありません。詳細についてはこの問題を参照してください。

高重要度:複数のDoS攻撃 CVE: CVE-2026-23864

Base Score: 7.5 (高)
日付: 2026年1月26日

セキュリティ研究者が、React Server Componentsに追加のDoS脆弱性がまだ存在することを発見しました。脆弱性は、Server Function エンドポイントに特別に細工されたHTTPリクエストを送信することで引き起こされ、脆弱なコードパス、アプリケーション設定、アプリケーションコードに応じて、サーバークラッシュ、メモリ不足例外、または過度のCPU使用量を引き起こす可能性があります。

1月26日に公開されたパッチは、これらのDoS脆弱性を軽減します。

注意

追加の修正が公開されました
CVE-2025-55184のDoSに対処する元の修正は不完全でした。これにより以前のバージョンが脆弱なままでした。バージョン19.0.4、19.1.5、19.2.4は安全です。

2026年1月26日更新

高重要度:DoS攻撃 CVE: CVE-2025-55184およびCVE-2025-67779

Base Score: 7.5 (高)

セキュリティ研究者が、任意のServer Functionsエンドポイントに送信できる悪意のあるHTTPリクエストを作成でき、Reactによってデシリアライズされると、サーバープロセスをハングさせ、CPUを消費する無限ループを引き起こす可能性があることを発見しました。

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

これにより、攻撃者がユーザーの製品へのアクセスを拒否し、サーバー環境にパフォーマンスの影響を与える可能性がある脆弱性ベクターが作成されます。

本日公開されたパッチは、無限ループを防ぐことで軽減します。

中重要度:ソースコード露出 CVE: CVE-2025-55183

Base Score: 5.3 (中)

セキュリティ研究者が、脆弱な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);
  // 暗黙的に文字列化、dbでリーク
  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内のコードに限定されます。常に本番バンドルに対して検証してください。

タイムライン

  • 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として公開開示
  • 1月26日: 追加のDoSケースが発見され、パッチが適用されCVE-2026-23864として公開開示

謝辞

Source Code Exposureを報告してくれた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に感謝します。