教育实验室,演示 CVE-2025-55182:通过 Flight 协议中的原型污染导致 React Server Components 中的严重 RCE
用于教育用途的实验环境,演示 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) │ ← 已修补
└────────────────────────────────┘
| 容器 | 端口 | 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"
漏洞利用分三个阶段执行:
__proto__ 遍历的 Flight 负载 → 污染 Object.prototype.thenmultipart/form-data 格式通过服务器操作端点发送X-Action-Redirect 响应头| 包 | 存在漏洞 | 已修补 |
|---|---|---|
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__ 遍历是危险的