本仓库演示了 CVE-2025-29927 的利用过程,这是一个 Next.js 中的严重漏洞,允许攻击者绕过基于中间件的授权检查。该漏洞源于对内部 x-middleware-subrequest HTTP 头部处理不当,从而能够未经授权访问受保护路由。
本项目仅用于教育和研究目的。未经明确许可针对系统进行未授权使用是违法且不道德的。作者不对任何滥用此代码的行为负责。
CVE-2025-29927 影响以下版本之前的 Next.js:
当攻击者在 HTTP 请求中包含 x-middleware-subrequest 头部时,该漏洞被触发。Next.js 将此头部解释为内部子请求,导致其跳过中间件执行,包括关键的授权检查。
git clone https://github.com/Knotsecurity/CVE-2025-29927-NextJs-Middleware-Simulation.git
cd cve-2025-29927-simulationnpm installnpm run dev
该应用在 /admin 路径下包含一个受保护路由,由检查用户身份验证的中间件守卫。
/login 页面并使用 [email protected]:password123 登录。/admin 页面。您将收到未经授权访问错误。x-middleware-subrequest: middleware,然后发送请求。/admin 页面。为防止此漏洞:
npm install next@latestx-middleware-subrequest 头部的请求。