近日,流行的 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 启用自定义缓存逻辑的场景中。
发表评论
您还未登录,请先登录。
登录