在

授权实验室研究
CVE-2025-29927 可绕过仅位于 Next.js Middleware 的授权检查。本文只给出隔离靶场中的判定、检测和修复回归方法,不提供公网扫描与批量利用脚本。
修复版本:12.3.5 / 13.5.9 / 14.2.25 / 15.2.3 优先级:高
一、影响模型
该问题使特制内部请求头影响 Middleware 处理流程。如果应用把全部授权逻辑只放在 Middleware,受保护路由可能在未完成预期检查时继续处理。自托管 next start 与 output: standalone 场景受到关注;应以官方公告中的部署条件为准。
二、实验边界
- 目标只允许
127.0.0.1或隔离 Docker 网络。 - 应用只包含虚拟账号和无价值的
/admin-demo页面。 - 验证在“受保护页面状态码发生变化”处停止,不读取数据或继续操作。
- 不向公网目标发送探测,不记录第三方 Cookie、令牌或响应正文。
三、正常对照
先验证未登录访问演示管理页会返回 401/403 或安全重定向,并记录 Next.js 版本、启动方式、请求时间和状态码。没有正常对照,就无法判断后续行为是否由漏洞引起。
四、最小化验证思路
在隔离副本中,使用单次人工请求比较默认请求与模拟内部链路请求的授权结果。只记录状态码、Location、服务端 Middleware 日志和路由是否进入;不访问真实管理功能。为降低误用风险,本文不展示可直接复制的绕过头值。
五、修复与临时缓解
优先升级至官方安全版本。无法立即升级时,在最外层反向代理阻止外部请求携带 Next.js 内部使用的 Middleware 子请求头,并在目标路由和 API 内执行服务端二次鉴权。反向代理过滤是临时缓解,不能替代升级。
六、检测线索
检查边缘代理和应用日志中来自公网却携带框架内部请求头的流量;关注对受保护路由出现异常 200、授权中间件未记录但路由已处理、同一来源短时间探测多个管理路径等现象。
七、修复后回归
- 确认运行版本已进入安全范围。
- 重复未登录正常请求,结果仍应拒绝。
- 重复隔离验证请求,不能跳过 Middleware。
- 在路由/API 移除会话后,二次授权仍应拒绝。
- 验证反向代理规则不影响内部健康检查和合法请求。
官方来源
最后核验:2026-08-12。实验仅限自有或明确授权环境。