💡
原文英文,约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客户的及时报告和调试协助。
❓
延伸问答
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'。
➡️