
Next.js框架中新发现的一个高危漏洞允许攻击者仅通过单个HTTP请求即可使自托管服务器崩溃,且执行攻击所需的资源几乎可以忽略不计。
漏洞技术分析
该拒绝服务(DoS)漏洞由Harmony Intelligence的研究人员发现,影响包括最新15.x分支(补丁前版本)在内的多个广泛使用的框架版本。漏洞存在于body-streams.ts文件中的cloneBodyStream函数,该组件负责在将流式请求传递给中间件之前将其复制到内存中。
与需要淹没网络的典型资源耗尽攻击不同,该漏洞利用了内部内存缓冲区缺乏大小限制的特性。攻击者可向服务器发送无限的数据块流,虽然攻击者可以在发送后立即从自身内存中释放每个数据块,但Next.js服务器会尝试将整个流缓冲到RAM中。这种不对称性意味着研究人员描述的"智能烤面包机"等资源有限的设备,也能通过耗尽内存成功使强大的企业服务器崩溃。
漏洞发现过程
Harmony Intelligence在测试AI AppSec Agent针对另一个已知漏洞(认证绕过漏洞CVE-2025-29927)时意外发现了该漏洞。测试期间,Agent自主执行了一个PoC脚本导致演示应用崩溃,从而暴露出Next.js框架中的这个0Day漏洞。
受影响系统与影响范围
该漏洞特别影响使用中间件的自托管Next.js应用。Harmony表示,直接托管在Vercel基础设施上的应用不受此问题影响。鉴于约55%的Next.js部署采用自托管方式(企业用户中这一比例高达80%),潜在攻击面相当可观。
目前尚未分配CVE编号,但已提交申请。研究人员建议CVSS v3.1严重性评分为7.5(高危),理由是攻击门槛低且无需认证即可执行。
修复措施与缓解方案
Vercel已于2025年10月13日发布补丁,对内部缓冲区大小设置了默认10MB的限制。管理员应立即升级或实施严格的代理级限制。
| 组件 | 状态/建议 |
|---|---|
| 漏洞类型 | 未认证拒绝服务(DoS) |
| 受影响版本 | Next.js 15.x(<=15.5.4)、14.x、13.x及更早版本 |
| 已修复版本 | 15.5.5、16.0.0或更新版本 |
| 主要缓解措施 | 立即升级至修复版本 |
| 临时解决方案 | 配置反向代理(如Nginx)强制执行client_max_body_size限制 |
研究人员强调,标准速率限制解决方案对此攻击无效,因为崩溃发生在基于中间件的速率限制器处理请求之前。同样,Next.js内置的bodyParser.sizeLimit配置也无法防止这种特定的内存耗尽攻击向量。
这一发现凸显了自托管架构采用纵深防御策略的重要性。虽然升级是最终解决方案,但在应用服务器前部署配置得当的反向代理,在超大请求到达应用层前将其拒绝,仍是关键的最佳实践。
参考来源:
New Unauthenticated DoS Vulnerability Crashes Next.js Servers with a Single Request
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)



