CVE-2025-55182 を実演する教育用ラボ: Flight プロトコルにおけるプロトタイプ汚染を介した React Server Components の重大な RCE
教育用ラボ: CVE-2025-55182 — React Server Components における Flight プロトコルデシリアライザーのプロトタイプ汚染によって引き起こされる深刻な(CVSS 10.0)リモートコード実行脆弱性。
免責事項: このリポジトリは教育および許可されたセキュリティ研究目的のみで提供されています。無許可のコンピュータシステムへのアクセスは違法です。著者は本マテリアルの誤用に対して一切の責任を負いません。使用は自己責任で、所有しているシステムまたは明示的な書面によるテスト許可を得たシステムに対してのみ使用してください。本コードを使用することにより、自己の行動に責任を持つことに同意したものとみなされます。
# 1. クローン
git clone https://github.com/Jeanback1/react-rsc-cve-2025-55182-lab.git
cd react-rsc-cve-2025-55182-lab
# 2. ラボを起動(脆弱版+修正版インスタンス)
docker compose up -d
# 両コンテナのビルドと起動まで約2分待ちます。
# 3. 脆弱版インスタンスを攻撃
python exploit/exploit.py http://localhost:3011 id
# 4. 修正版インスタンスでも同じことを試す — 失敗する
python exploit/exploit.py http://localhost:3012 id
docker compose
┌────────────────────────────────┐
│ │
attacker ────▶│ :3011 → rsc-lab-vulnerable │ React 19.2.0
│ (サーバーアクション) │ ← 攻撃可能
│ │
│ :3012 → rsc-lab-patched │ React 19.2.1
│ (サーバーアクションなし)│ ← 修正済み
└────────────────────────────────┘
| コンテナ | ポート | React バージョン | サーバーアクション | 脆弱? |
|---|---|---|---|---|
rsc-lab-vulnerable | 3011 | 19.2.0 | あり | はい |
rsc-lab-patched | 3012 | 19.2.1 | なし | いいえ |
requests(pip install requests)├── docker-compose.yml # ラボオーケストレーション
├── README.md # 本ファイル
├── LICENSE
│
├── vulnerable/ # 脆弱なNext.jsアプリ
│ ├── Dockerfile
│ ├── package.json # [email protected], [email protected]
│ └── app/
│ ├── layout.tsx
│ ├── page.tsx # サーバーコンポーネント + サーバーアクション
│ └── actions.ts # 'use server' — 攻撃対象
│
├── patched/ # 修正済みNext.jsアプリ
│ ├── Dockerfile
│ ├── package.json # [email protected], [email protected]
│ └── app/
│ ├── layout.tsx
│ └── page.tsx # サーバーコンポーネントのみ(サーバーアクションなし)
│
├── exploit/
│ ├── exploit.py # 教育用RCEエクスプロイト(コメント充実)
│ ├── requirements.txt
│ └── pyproject.toml
│
└── docs/
└── CVE-2025-55182.md # 完全な技術解析
# 単一コマンド実行
python exploit/exploit.py <ターゲット> <コマンド>
# 例
python exploit/exploit.py http://localhost:3011 id
python exploit/exploit.py http://localhost:3011 "cat /etc/passwd"
python exploit/exploit.py http://localhost:3011 "ls -la /app"
エクスプロイトは3段階で動作します:
__proto__ トラバーサルを含むFlightペイロードを構築 → Object.prototype.then を汚染multipart/form-data としてペイロードを送信X-Action-Redirect からコマンド出力を抽出(base64エンコード)| パッケージ | 脆弱 | 修正済み |
|---|---|---|
react | ≤ 19.2.0 | ≥ 19.2.1 |
react-dom | ≤ 19.2.0 | ≥ 19.2.1 |
react-server-dom-webpack | ≤ 19.2.0 | ≥ 19.2.1 |
docs/CVE-2025-55182.md に完全なウォークスルーがあります:
__proto__ トラバーサルが危険な理由