Next.js 中间件绕过的事后分析

Next.js 中间件绕过的事后分析

💡 原文英文,约1000词,阅读约需4分钟。
📝

内容提要

上周,我们发布了CVE-2025-29927,修复了Next.js中的一个严重漏洞。该漏洞于2025年2月27日通过GitHub报告,影响旧版本。经过调查确认后,我们发布了补丁,并改进了安全报告流程,制定了长期支持政策,以确保及时修复安全问题。感谢研究人员的负责任披露。

🎯

关键要点

  • 上周发布了CVE-2025-29927,修复了Next.js中的严重漏洞。

  • 该漏洞于2025年2月27日通过GitHub报告,影响旧版本的Next.js。

  • 经过调查确认后,发布了补丁,并改进了安全报告流程。

  • 制定了长期支持政策,以确保及时修复安全问题。

  • 感谢研究人员的负责任披露。

  • 初步报告显示漏洞影响Next.js 12.x版本,后续扩展到更高版本。

  • 由于多次报告和内部讨论,漏洞的优先级被延迟处理。

  • Next.js团队确认漏洞有效,并开始研究影响和修复选项。

  • 确定了最佳解决方案,通过验证x-middleware-subrequest头来修复漏洞。

  • 在GitHub上提交了补丁请求,并于2025年3月17日合并。

  • 发布了Next.js 14.2.25和15.2.3的补丁。

  • CVE-2025-29927于2025年3月18日由GitHub发布,并于3月21日公开。

  • 发布了关于CVE的博客文章,并准备后续的详细报告。

  • 为Next.js 13.5.9和12.3.5发布了回溯补丁,尽管超出了LTS政策。

  • Middleware允许在生成响应之前重定向、重写或修改传入请求。

  • 我们正在改进与合作伙伴的沟通,并开设合作伙伴邮件列表。

  • 合并了安全报告渠道,以提高报告处理效率。

  • 改进了团队对漏洞披露的响应流程。

  • 发布了长期支持政策,明确支持的版本。

  • 正在调查是否有其他地方可以提高Middleware的安全性。

  • 感谢安全研究人员Rachid Allam和Yassir Alam的负责任披露。

🔎

延伸解读

漏洞影响范围

CVE-2025-29927漏洞最初影响的是Next.js的旧版本(12.x),但后续调查发现更高版本也受到影响。这提醒开发者在使用Next.js时,需关注版本更新和安全补丁,确保应用程序的安全性。

安全报告流程改进

Next.js团队在此次事件后改进了安全报告流程,合并了多个报告渠道,以提高处理效率。这表明,开发团队在面对安全问题时,重视透明度和响应速度,开发者应积极参与安全报告,促进生态系统的安全。

中间件的安全性

中间件在处理请求时具有重要作用,但不应作为唯一的安全保护措施。开发者应结合其他安全策略,确保应用程序的全面防护,避免依赖单一机制导致的安全隐患。

长期支持政策的意义

Next.js发布了长期支持(LTS)政策,明确了支持的版本和安全补丁。这为开发者提供了清晰的维护指南,确保在使用框架时能够获得必要的安全更新,降低潜在风险。

延伸问答

CVE-2025-29927是什么漏洞?

CVE-2025-29927是一个影响旧版本Next.js的严重漏洞,已于2025年3月修复。

Next.js团队是如何处理这个漏洞的?

Next.js团队确认漏洞后,进行了影响评估,并发布了补丁,改进了安全报告流程。

Next.js的长期支持政策是什么?

Next.js的长期支持政策明确了哪些版本会持续获得安全补丁,旧版本将不再支持。

这个漏洞对Vercel有影响吗?

由于Next.js的路由逻辑与Vercel的系统分离,Vercel应用未受到此漏洞影响。

Next.js中间件的作用是什么?

中间件允许在生成响应之前重定向、重写或修改传入请求,增强了请求处理的灵活性。

如何报告Next.js的安全漏洞?

可以通过GitHub的私有漏洞报告渠道报告Next.js的安全漏洞,已合并了多个报告渠道以提高效率。

🏷️

标签

➡️

继续阅读