Next.js 允许攻击者通过缓存中毒触发 DoS漏洞
原文链接: https://mp.weixin.qq.com/s?__biz=MzI0NzE4ODk1Mw==&mid=2652096374&idx=2&sn=0db1104436ef7e1f9d8ce2148c89f9f2
Next.js 允许攻击者通过缓存中毒触发 DoS漏洞
网安百色 2025-07-06 11:31
已在流行的基于 React 的 Web 框架 Next.js 中发现并解决了一个名为 CVE-2025-49826 的严重漏洞。
根据 Vercel 的一份报告,该漏洞存在于 >=15.1.0 和 <15.1.8 版本中,允许攻击者利用缓存中毒错误,可能导致受影响的应用程序出现拒绝服务 (DoS) 情况。
CVE 编号 | 受影响的版本 | 严厉 | 冲击 | 固定位置 |
|
|
|
|
|
技术细节
该漏洞是由于在某些缓存场景中未正确处理 HTTP 204 响应所致。
在特定条件下,可以为静态页面缓存 204 No Content 响应。
缓存后,此空响应将提供给所有尝试访问受影响页面的用户,从而有效地使内容无法访问并导致服务中断。
要利用漏洞,必须满足以下所有条件:
– 应用程序运行的是受影响的 Next.js 版本(>=15.1.0、<15.1.8)。
-
路由在下次启动或独立模式下使用增量静态重新生成 (ISR) 的缓存重新验证。
-
该路由使用服务器端渲染 (SSR),并且位于配置为缓存 204 个响应的 CDN 后面。
值得注意的是,在 Vercel 上托管的客户不受此问题的影响。
如果被利用,该漏洞可能允许攻击者使用 204 响应使缓存中毒。
这将导致所有后续用户收到空响应,从而导致受影响的静态页面或 SSR 页面被拒绝服务。该问题的 CVSS 评分为 7.5,表明严重性较高。
Next.js 团队迅速做出了回应:
– 删除可能在缓存中设置 204 响应的问题代码路径。
- 通过不再依赖共享响应对象来填充缓存来消除争用条件。
此修复已在版本 15.1.8 中发布。强烈建议运行 15.1.0 和 15.1.7 之间 Next.js 的自托管或本地部署的用户立即升级。
使用早期主要版本的用户应确保其版本为 15.0.4 或更低版本。
– 将 Next.js 升级到版本 15.1.8 或更高版本。
-
查看 CDN 配置以确保不会为关键路由缓存 204 响应。
-
监控应用程序日志中的异常 HTTP 204 响应。
本公众号所载文章为本公众号原创或根据网络搜索下载编辑整理,文章版权归原作者所有,仅供读者学习、参考,禁止用于商业用途。因转载众多,无法找到真正来源,如标错来源,或对于文中所使用的图片、文字、链接中所包含的软件/资料等,如有侵权,请跟我们联系删除,谢谢!