【vulhub漏洞复现】Auth Bypass -- Next.js 中间件鉴权绕过漏洞 (CVE-2025-29927)
本文最后更新于 2026年1月19日 上午
1.漏洞原理
Next.js 是一个基于 React 的流行 Web 应用框架(前端框架),提供服务器端渲染、静态网站生成和集成路由系统等功能。当使用中间件进行身份验证和授权时,Next.js 14.2.25 和 15.2.3 之前的版本存在授权绕过漏洞。
该漏洞允许攻击者通过操作 x-middleware-subrequest 请求头来绕过基于中间件的安全控制,从而可能获得对受保护资源和敏感数据的未授权访问。
Next.js是一个前端框架,在访问后端api接口时,就会在请求中自动带上x-middleware-subrequest: middleware这个参数,这是一个内部请求标记,为了防止中间件循环执行,例如:用户点击跳转/order页面,需要加载后端数据,这是Next.js就需要让中间件去访问后端api接口,访问后端/api/user-profile,这是就要带上x-middleware-subrequest: middleware这个参数。
Next.js 身份验证绕过漏洞(CVE-2023-46805),这个漏洞正是利用了 x-middleware-subrequest 的逻辑缺陷:
Next.js 中间件在解析
x-middleware-subrequest的值时,对多层嵌套的middleware:前缀(如middleware:middleware:middleware:middleware:middleware)处理不当。当攻击者构造这种多层嵌套的请求头时,中间件会错误地判定这是一个合法的内部子请求,从而直接跳过所有身份验证逻辑(比如
next-auth登录校验、自定义权限判断),让未授权请求访问受保护的路由。
2.漏洞利用
漏洞首页
可以看到网站指纹,Next.js 、React、 Python
访问http://your-ip:3000会自动跳转到/login
利用这点,添加x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware参数
成功绕过