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和Vercel CLI的应用,尤其是在自托管或外部部署时。如果CDN未能正确区分RSC和HTML,可能导致用户获取错误的内容,影响用户体验。因此,开发者需关注应用的部署环境和缓存策略,以避免潜在风险。

修复措施与最佳实践

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

中间件重定向的注意事项

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

Q&A

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'。

🏷️

标签

➡️

继续阅读