
CVE-2025-55182 + CVE-2025-66478 - Next.js/React Server Components のリモートコード実行
このリポジトリには、CVE-2025-55182 の Proof-of-Concept (PoC) エクスプロイトが含まれています。この脆弱性は、App Router を使用した React バージョン 19.x および Next.js バージョン 15.x/16.x の React Server Components に影響を与える、深刻なリモートコード実行 (RCE) 脆弱性です。CVSS スコアは 10.0 で、重大なリスクを示します。
この脆弱性の核心は、React Server Components 内での逆シリアル化の不適切な処理にあります。具体的には、このエクスプロイトは @ 逆シリアル化を利用して Chunk オブジェクトを操作し、その then プロパティを乗っ取ります。status を RESOLVED_MODEL に設定することで、攻撃者が完全に制御する偽のチャンクを渡して initializeModelChunk 関数を呼び出します。これにより _response オブジェクトを操作でき、最終的に任意のコード実行につながります。
このエクスプロイトは、Blob の逆シリアル化プロセス、具体的には response._formData.get 呼び出しを標的とし、攻撃者が制御するコードを注入して実行します。
exploit.py スクリプトは、この脆弱性を示す PoC を提供します。これは、逆シリアル化プロセスを操作してターゲットサーバー上でコマンドを実行する、悪意のあるペイロードを作成します。
@ 逆シリアル化: エクスプロイトは @ 逆シリアル化メカニズムを使用して Chunk オブジェクトの制御を獲得します。Chunk.prototype.then の乗っ取り: Chunk プロトタイプの then プロパティが上書きされるため、チャンクが await される/解決されると、攻撃者が制御するコードが呼び出されます。RESOLVED_MODEL ステータス: チャンクの status を RESOLVED_MODEL に設定すると、攻撃者が制御する _response オブジェクトとやり取りする initializeModelChunk 関数がトリガーされます。_formData.get の操作: エクスプロイトは response._formData.get を操作して、攻撃者が制御するコードを含む関数を返させます。その後、この関数が実行されます。pip install -r requirements.txt を使用してライブラリをインストールしてください。スクリプトを保存: 提供された Python コードを exploit.py として保存します。
スクリプトを実行: コマンドラインからスクリプトを実行し、引数としてターゲット URL と実行するコマンドを指定します。
python exploit.py <target_url> <command_to_execute>
例:
python exploit.py http://localhost:3000 "ls -l"

この PoC は、いかなる保証もなく「現状のまま」提供されます。作者は、このスクリプトの不正使用またはこれによって生じた損害について一切責任を負いません。自己責任で使用してください。