这是 CVE-2025-29927 的演示,这是 Next.js 中的一个严重漏洞,允许通过特定的请求头绕过中间件。
请求头 x-middleware-subrequest 旨在防止中间件无限循环。每次请求到达中间件时,值 middleware 都会被追加到该请求头,如果追加了 5 次,中间件就会放行请求。发送带有 middleware:middleware:middleware:middleware:middleware 值的请求即可绕过中间件。
克隆仓库并构建项目后,运行开发服务器:
npm run dev
在浏览器中通过链接 http://localhost:3000 访问该应用。
此应用的目标是访问 /cool 页面。提交按钮会跳转到该页面,但请求会被中间件拦截并重定向到 /uncool。
现在,我们可以发送相同的请求,但使用精心构造的请求头,中间件将允许我们进入 /cool 页面。这可以通过浏览器开发者工具实现。
