CVE-2025-55182 实验环境 — React 服务器组件远程代码执行

用于教育用途的实验环境,演示 CVE-2025-55182 — React 服务器组件中因 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
┌────────────────────────────────┐
│ │
攻击者 ────▶│ :3011 → rsc-lab-vulnerable │ React 19.2.0
│ (Server Action) │ ← 可利用
│ │
│ :3012 → rsc-lab-patched │ React 19.2.1
│ (no Server Action) │ ← 已修补
└────────────────────────────────┘
环境要求
- Docker + Docker Compose v2
- Python 3.8+ 及
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"
漏洞利用分三个阶段执行:
- 构建 包含
__proto__ 遍历的 Flight 负载 → 污染 Object.prototype.then
- 发送 负载以
multipart/form-data 格式通过服务器操作端点发送
- 提取 命令输出(base64 编码)来自
X-Action-Redirect 响应头
受影响版本
| 包 | 存在漏洞 | 已修补 |
|---|
react | ≤ 19.2.0 | ≥ 19.2.1 |
react-dom |
技术深入分析
请参阅 docs/CVE-2025-55182.md 获取完整讲解:
- Flight 协议的工作原理
- 为什么
__proto__ 遍历是危险的
- 逐步漏洞利用链
- 检测与缓解策略
参考资料