Next.js 高危漏洞(CVE-2025-49826,CVSS 7.5):缓存投毒可导致服务拒绝(DoS)

阅读量11999

发布时间 : 2025-07-07 15:52:58

x
译文声明

本文是翻译文章,文章原作者 Ddos,文章来源:securityonline

原文地址:https://securityonline.info/next-js-flaw-cve-2025-49826-cvss-7-5-cache-poisoning-leads-to-denial-of-service/

译文仅供参考,具体内容表达以及含义原文为准。

近日,流行的 React Web 开发框架 Next.js 被披露存在缓存投毒漏洞 CVE-2025-49826,CVSS 评分为 7.5。该漏洞影响版本范围为 ≥15.1.0 且 <15.1.8,攻击者可在特定条件下触发该漏洞,导致静态页面返回错误的 HTTP 204 响应,从而引发服务拒绝(DoS)攻击。

“在某些条件下,该漏洞可能导致 HTTP 204 响应被缓存至静态页面,使所有访问该页面的用户都收到错误响应。”——官方安全公告

漏洞原理:ISR 缓存重验证逻辑缺陷

该漏洞出现在 Next.js 的 增量静态再生成(Incremental Static Regeneration, ISR)缓存验证机制中。在以下两类部署场景中,受影响的 Next.js 版本可能被攻击:

  • 使用 ISR 缓存重验证功能,并运行于 next start 或独立运行模式(standalone mode)下的路由;

  • 启用服务端渲染(SSR),同时使用支持缓存 HTTP 204 响应的 CDN 服务。

在此场景下,204 No Content 响应(无内容)被错误地缓存为静态页面的返回值,最终造成页面不加载或无法呈现,导致网站用户面向内容“集体不可访问”——即服务中断(DoS)

官方修复方案:升级版本 + 避免 CDN 缓存 204

Next.js 团队已在 版本 15.2.0 修复该问题,并向下兼容地在 15.0.4 中进行了补丁回溯(backport)。本次修复主要包括:

  • 移除设置 204 响应路径的相关代码;

  • 修复缓存逻辑中存在的竞争条件(race condition),不再使用共享响应对象填充缓存。

“我们移除了导致缓存投毒的竞争条件,不再依赖共享响应对象构建缓存。”——Next.js 安全团队

安全建议:立即检查并升级

  • 若你运行的是 Next.js 自托管或本地部署版本,版本号为 15.1.0 – 15.1.7,建议立即升级至 15.2.0 或以上;

  • 如使用的是早期版本线,请确保版本处于 15.0.4 或以下,已应用修复补丁;

  • 同时建议审查 CDN 缓存规则,防止意外缓存 HTTP 204 响应,尤其是在 SSR 或 ISR 启用自定义缓存逻辑的场景中。

本文翻译自securityonline 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66