
このリポジトリは、Flight プロトコルを使用した Next.js React Server Components (RSC) におけるデシリアライゼーション動作に関する研究を文書化しています。特定のビルドにおいて、不正な形式の multipart ボディと Server Action リクエスト処理が組み合わさることで、プロトタイプの走査と実行プリミティブにつながる可能性があることに焦点を当てています。
このリポジトリは、CVE-2025-55182(別名 React2Shell)に関する調査を文書化したものです。これは、React Server Components(RSC)と、RSC Flight プロトコルを組み込んだフレームワーク(特に Next.js App Router)における重大な安全でない逆シリアル化の脆弱性です。
ここでは、不正な形式の RSC / Flight ペイロードと Server Function(Server Action)処理が組み合わさることで、サーバー上で攻撃者が制御する JavaScript が実行される可能性に焦点を当てています。
この資料は、防御的な理解、管理されたラボ環境での再現、および文書化を目的としています。すぐに使えるエクスプロイトツールキットではありません。所有しているシステム、または評価するための明示的な書面による許可を得たシステムに対してのみテストしてください。
中核となるバグは、サーバー側の RSC Flight 実装にあります。影響を受ける npm パッケージとバージョンは次のとおりです:
脆弱なパッケージとバージョン(Vulert)
react-server-dom-webpack
react-server-dom-parcel
react-server-dom-turbopack
修正済みバージョン(React アドバイザリによる)(Vulert)
React 19 で RSC と脆弱なパッケージのいずれかを使用しているアプリケーションは、Server Functions を明示的に定義していない場合でも、アップグレードされるまで影響を受けるものとして扱う必要があります。
Next.js は、App Router を使用する際に脆弱な RSC 実装を継承します。この問題は Next.js では CVE-2025-66478 として追跡され、CVSS 10.0 と評価されています。(SOCRadar® Cyber Intelligence Inc.)
脆弱な Next.js バージョン(App Router)
React 19 RSC を使用するすべてのビルド:
次のバージョンより前の next 15.x:
16.0.7 より前の next 16.x
14.3.0-canary.77 以降の Canary ビルド、および修正が適用される前のそれ以降の Canary リリース
実際には、これは次のことを意味します:
create-next-app プロジェクトは、更新されない限り対象となります。この CVE の影響を受けないもの(ベンダーのガイダンスによる)(Black Kite)
脆弱な RSC パッケージを同梱するフレームワークやバンドラーは、影響を受ける可能性があります。現在リストされているエコシステムには以下が含まれます:(Vulert)
@parcel/rsc@vitejs/plugin-rscスタックが React 19 と脆弱な react-server-dom-* パッケージのいずれかを使用している場合、反証がない限り影響を受けると想定してください。
公開アドバイザリとベンダーの解説に基づくと、悪用には次の特徴があります:(Vulert)
認証
設定
react-server-dom-* パッケージを使用している React 19child_process.exec などの明示的な危険なサーバー関数を自分で定義する必要はないネットワーク露出
攻撃フロー(概要)
CVSS 3.1 の評価では、次のように説明されています:
管理されたテスト環境で、脆弱なバージョンと RSC 有効構成を使用して、研究者とベンダーは次のことを報告しています:(SOCRadar® Cyber Intelligence Inc.)