CVE-2026-29057
Next.js:重写功能中的HTTP请求走私漏洞
- 已发布
- 2026年3月18日
- 已更新
- 2026年3月18日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月17日
初级CVSS
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X低 · 未来 30 天
- 百分位
- 36.5%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
Next.js 是一个用于构建全栈 Web 应用的 React 框架。从 9.5.0 版本开始,直至 15.5.13 和 16.1.7 之前的版本,当 Next.js 将代理流量重写到外部后端时,使用 `Transfer-Encoding: chunked` 的精心构造的 `DELETE`/`OPTIONS` 请求可能触发代理与后端之间的请求边界不一致。这可能导致通过重写路由进行请求走私。攻击者可以向非预期的后端路由(例如内部/管理端点)走私第二个请求,从而绕过“仅可访问配置的重写目标/路径”这一假设。这不影响在 CDN 层面处理重写的提供商(如 Vercel)上托管的应用程序。该漏洞源于 Next.js 内置的一个上游库。通过更新该依赖的行为,Next.js 15.5.13 和 16.1.7 已修复此问题,即仅在 `content-length` 和 `transfer-encoding` 均不存在时才添加 `content-length: 0`,并且在该代码路径中不再移除 `transfer-encoding`。如果无法立即升级,请在边缘/代理层阻止重写路由上的分块 `DELETE`/`OPTIONS` 请求,并/或对后端路由强制执行身份验证/授权。
来源
2一些针对Next.js中CVE-2025-29927、CVE-2026-27978和CVE-2026-29057的概念验证(POC)。
基于 Docker 的实验环境,复现 CVE-2026-29057 Next.js 请求走私漏洞,通过原始分块 HTTP 载荷对比存在漏洞的 15.5.12 版本与已修复的 15.5.13 版本。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。