CVE-2025-49005

CVE-2025-49005

💡 原文英文,约300词,阅读约需1分钟。
📝

内容提要

Next.js App Router 15.3.0至15.3.2和Vercel CLI 41.4.1至42.2.0存在缓存中毒漏洞,已修复。该漏洞可能导致HTML请求返回React服务器组件。修复方法包括正确设置Vary头和重新部署应用。

🎯

关键要点

  • Next.js App Router 15.3.0至15.3.2和Vercel CLI 41.4.1至42.2.0存在缓存中毒漏洞,已修复。

  • 该漏洞可能导致HTML请求返回React服务器组件(RSC)负载。

  • 在Vercel上部署时,仅影响浏览器缓存,不会导致CDN中毒。

  • 自托管和外部部署时,如果CDN未正确区分RSC/HTML,可能导致缓存中毒。

  • 特定条件下,应用可能会错误地提供RSC负载而非HTML,并在浏览器或CDN层缓存这些响应。

  • 问题发生在中间件重写或重定向导致缓存键分离不当的环境中。

  • Next.js 15.3.3通过正确设置Vary头来解决此问题,以区分不同内容类型。

  • 使用受影响CLI版本的Vercel客户必须重新部署应用以接收修复。

  • 手动在RSC响应中添加Vary头以区分RSC和HTML负载。

  • 对中间件重定向目标应用唯一的缓存破坏搜索参数。

  • 感谢内部事件响应团队和受影响的Vercel客户的及时报告和调试协助。

🔎

延伸解读

漏洞影响分析

该缓存中毒漏洞主要影响使用Next.js App Router和Vercel CLI的应用,尤其是在自托管或外部部署时。如果CDN未能正确区分RSC和HTML,可能导致用户获取错误的内容,影响用户体验。因此,开发者需关注应用的部署环境和缓存策略,以避免潜在风险。

修复措施与最佳实践

为了解决此漏洞,Next.js 15.3.3版本通过正确设置Vary头来区分不同内容类型。开发者在使用受影响的CLI版本时,必须重新部署应用以应用修复。此外,手动添加Vary头以区分RSC和HTML负载也是一种最佳实践,确保缓存的准确性。

中间件重定向的注意事项

在使用中间件进行重定向时,开发者需特别注意缓存键的分离。如果重定向导致缓存破坏参数被剥离,可能会引发缓存中毒问题。因此,建议在设计中间件时,确保重定向逻辑不会影响缓存的正确性。

延伸问答

CVE-2025-49005漏洞的影响是什么?

该漏洞可能导致HTML请求返回React服务器组件(RSC)负载,从而影响应用的正常显示。

如何修复CVE-2025-49005漏洞?

修复方法包括在Next.js 15.3.3中正确设置Vary头,并重新部署使用受影响CLI版本的应用。

哪些版本的Next.js和Vercel CLI受到CVE-2025-49005漏洞影响?

受影响的版本包括Next.js App Router 15.3.0至15.3.2和Vercel CLI 41.4.1至42.2.0。

在什么情况下会导致缓存中毒?

当CDN未正确区分RSC和HTML,且中间件重写或重定向导致缓存键分离不当时,可能会导致缓存中毒。

Vercel上部署时该漏洞会影响哪些内容?

在Vercel上部署时,该漏洞仅影响浏览器缓存,不会导致CDN中毒。

如何手动添加Vary头以区分RSC和HTML?

在RSC响应中手动添加Vary头,内容应为'Vary: RSC, Next-Router-State-Tree, Next-Router-Prefetch'。

🏷️

标签

➡️

继续阅读