
Next.js 框架中新发现的一个严重安全漏洞(编号为 CVE-2025-29927)允许恶意行为者完全绕过授权机制,对 Web 应用程序构成重大威胁。
此漏洞源于Next.js 中间件执行中对 x-middleware-subrequest 标头的不当处理,可能会将敏感的管理区域和受保护的资源暴露给未经授权的访问。
该漏洞影响基于 React 的流行 Web 框架的多个版本,根据所使用的具体版本,利用技术也有所不同。
关键要点 1. CVE-2025-29927 利用 x-middleware-subrequest 绕过 Next.js 授权。2 . 攻击者将标头设置为中间件名称以跳过检查。3 . 授予未经授权的访问权限,因此需要实施分层安全保护。
安全研究人员已经证明,攻击者可以操纵HTTP标头来绕过身份验证和授权控制,从而无需适当的凭据即可访问限制区域。
Next.js 框架漏洞
NullSecurityX报告称,此漏洞的核心在于 Next.js 的中间件处理逻辑,特别是它如何处理 x-middleware-subrequest 标头。
此标头最初旨在通过识别内部子请求来防止中间件无限循环。然而,其实现存在缺陷,导致外部请求滥用此机制。
易受攻击的代码模式遵循以下结构:

当攻击者在其 HTTP 请求中包含相应的 x-middleware-subrequest 标头值时,中间件会错误地将其识别为内部子请求,并完全跳过授权检查。不同 Next.js 版本的利用方式有所不同:
版本 12.2 及更早版本:攻击者使用 x-middleware-subrequest: pages/_middleware 绕过位于 pages 目录中的中间件。
版本 12.2 及更高版本:对于名为 middleware.ts 的中间件文件,标头值更改为 x-middleware-subrequest: middleware。
版本 13.2.0 及更高版本:尽管有递归深度保护,但根本漏洞仍然通过标头中重复的中间件名称存在。
实际利用场景证明了此漏洞的严重性。攻击者可以编写简单的 HTTP 请求来访问受保护的管理面板。
此请求绕过中间件保护并授予对管理功能的未经授权的访问。
当与 JSON Web Token (JWT) 或基于 cookie 的身份验证系统结合使用时,该漏洞会变得特别危险,因为标头操作可以完全规避令牌验证。
自动化开发工具可以同时系统地测试多个受保护的路线。
| 风险因素 | 细节 |
| 受影响的产品 | Next.js 版本 ≤ 12.2(pages/_middleware)Next.js 版本 ≥ 12.2 且 < 13.2.0(middleware.ts)Next.js 版本 ≥ 13.2.0 |
| 影响 | 通过跳过中间件完全绕过授权 |
| 漏洞利用前提条件 | 能够使用自定义 x-middleware-subrequest 标头来制作 HTTP 请求 |
| CVSS 3.1 评分 | 9.8(严重) |
安全研究人员已经开发了概念验证脚本,该脚本在注入恶意标头的同时遍历常见的管理端点(/admin、/dashboard、/settings),快速识别整个应用程序中的易受攻击的接入点。
该漏洞的影响远不止简单的授权绕过。在仅依赖 Next.js 中间件进行安全控制的应用程序中,攻击者可能会在未经适当身份验证的情况下访问敏感用户数据、修改应用程序配置或执行管理功能。
运行 Next.js 应用程序的组织应立即评估其中间件实现并应用可用的安全补丁。
这一发现凸显了纵深防御安全策略的关键性,其中授权控制存在于多个应用层,而不是仅仅依赖于基于中间件的保护机制。
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。
