研究人员在 Next.js 框架的中间件实现中发现严重安全漏洞(CVE-2025-29927),攻击者通过伪造 x-middleware-subrequest
请求头可绕过身份验证与路由保护机制。该漏洞影响 11.1.4 至 15.2.3 之前的所有版本,覆盖超过 82% 的生产环境部署(依据 Next.js 官方统计面板)。
漏洞原理
当中间件检测到 x-middleware-subrequest
头时会跳过授权逻辑,攻击者可通过构造特定格式的请求头(如 pages/_middleware
或 middleware:
重复序列)触发该机制。该缺陷使得路由重写、JWT 校验等安全措施完全失效。
影响范围
- 11.1.4 ≤ Next.js < 12.2.0
- 12.2.0 ≤ Next.js < 14.2.25
- 15.0.0 ≤ Next.js < 15.2.3
修复方案
- 立即升级至安全版本:
- Next.js 15.x → ≥15.2.3 (更新日志)
- Next.js 14.x → ≥14.2.25 (更新日志)
- 临时缓解措施:在 CDN/反向代理层过滤
x-middleware-subrequest
头(需注意 Nginx 配置需包含proxy_set_header X-Middleware-Subrequest "";
)
开发者可通过运行 npx next-info@latest
快速检测项目风险状态。Vercel 已为托管项目自动部署热补丁,私有部署用户需手动处理。漏洞技术细节