关于CVE-2025-29927

基本信息

  • CVE ID: CVE-2025-29927
  • 严重程度: Critical
  • CVSS评分: 9.1
  • EPSS评分: 92.56
  • 发现时间: March 2025
  • 受影响版本: < 12.3.5, < 13.5.9, < 14.2.25, < 15.2.3
  • 已修复版本: 12.3.5, 13.5.9, 14.2.25, 15.2.3

简单概述:CVE-2025-29927Next.js 中的一个漏洞,由于开发者对 x-middleware-subrequest 请求头的过于信任,攻击者可以通过伪造此请求头,完全绕过中间件逻辑,包括身份验证和授权机制,从而未经授权访问易受攻击应用程序中的受保护路由。
Next.js 的使用中间件在请求到路由前进行身份验证防止越权。为了防止内部请求转发太多次,开发者设计了 x-middleware-subrequest 请求头。但是开发者对于该请求头过于信任而致使漏洞产生,由于该请求头被信任,只要在访问的时候手动带上这个请求头就可以伪造请求已经过处理,进而导致越权

请求示例

GET /admin HTTP/1.1
Host: example.com
x-middleware-subrequest: middleware

服务器会误以为这是一个内部请求,从而跳过对其的身份验证。

修复

补丁

升级您的Next.js版本
对于 Next.js 15.x,此问题已修复。使用 15.2.3
对于 Next.js 14.x,此问题已修复。使用 14.2.25
对于 Next.js 13.x 版本,此问题已在 13.5.9 版本中修复。
对于 Next.js 12.x 版本,此问题已在 12.3.5 版本中修复。
对于 Next.js 11.x,请参考以下解决方法。

变通方法

如果无法修补到安全版本,我们建议您阻止包含该x-middleware-subrequest标头的外部用户请求到达您的 Next.js 应用程序。

标签: none

添加新评论