Next.js 15.2.3 版本发布,修复安全漏洞 CVE-2025-29927
Next.js 发布 15.2.3 版本,修复了安全漏洞 CVE-2025-29927。该漏洞允许绕过 Middleware 检查,影响使用 `next start` 和 `output: 'standalone'` 自托管的 Next.js 应用。受影响的应用如果依赖 Middleware 进行身份验证或安全检查,但未在应用中进行额外验证,则存在风险。Vercel、Netlify 托管的应用以及静态导出部署的应用不受影响。已修复版本包括 Next.js 15.2.3、14.2.25 和 13.5.9。建议无法升级的用户阻止包含 `x-middleware-subrequest` 标头的外部请求。同时,Next.js 正在建立合作伙伴邮件列表以加强安全沟通。
CVE-2025-29927
发布者:
Lee Robinson@leerob
为解决安全漏洞(CVE-2025-29927),已发布 Next.js 15.2.3 版本。 此外,还提供了向后移植的补丁。
我们建议所有使用 next start
和 output: 'standalone'
自托管的 Next.js 部署立即更新。
继续阅读以了解有关该 CVE 的更多详细信息。
时间线
2025-02-27T06:03Z
:通过 GitHub 私有漏洞报告向 Next.js 团队披露2025-03-14T17:13Z
:Next.js 团队开始对报告进行分类2025-03-14T19:08Z
:推送 Next.js 15.x 的补丁2025-03-14T19:26Z
:推送 Next.js 14.x 的补丁2025-03-17T22:44Z
:发布 Next.js 14.2.252025-03-18T00:23Z
:发布 Next.js 15.2.32025-03-18T18:03Z
:GitHub 发布 CVE-2025-299272025-03-21T10:17Z
:发布安全公告2025-03-22T21:21Z
:发布 Next.js 13.5.9
我们还将发布 v12 的向后移植版本。 我们将在发布后更新这篇文章。
漏洞详情
Next.js 使用内部标头 x-middleware-subrequest
来防止递归请求触发无限循环。 安全报告表明,可以跳过运行 Middleware,这可能允许请求跳过关键检查(例如授权 Cookie 验证)然后到达路由。
影响范围
受影响
- 使用 Middleware 的自托管 Next.js 应用程序(使用
next start
和output: 'standalone'
) - 如果你依赖 Middleware 进行身份验证或安全检查,但之后未在应用程序中验证这些检查,则会受到影响。
- 使用 Cloudflare 的应用程序可以启用 Managed WAF rule
不受影响
- 托管在 Vercel 上的应用程序
- 托管在 Netlify 上的应用程序
- 作为静态导出部署的应用程序(Middleware 不执行)
已修复版本
- 对于 Next.js 15.x,此问题已在
15.2.3
中修复 - 对于 Next.js 14.x,此问题已在
14.2.25
中修复 - 对于 Next.js 13.x,此问题已在
13.5.9
中修复
如果无法升级到安全版本,建议阻止包含 x-middleware-subrequest
标头的外部用户请求到达你的 Next.js 应用程序。
我们还将发布 v12 的向后移植版本。 我们将在发布后更新这篇文章。
我们的安全责任
自 2016 年以来,Next.js 已发布 16 个安全公告。 随着时间的推移,我们不断改进收集、修补和披露漏洞的方式。
GitHub Security Advisories 和 CVE 是行业标准方法,用于将软件中的漏洞通知用户、供应商和公司。 虽然我们发布了 CVE,但我们在合作伙伴沟通方面做得不够。
为了帮助我们更主动地与依赖 Next.js 的合作伙伴和其他基础设施提供商合作,我们正在开设一个合作伙伴邮件列表。 请联系 partners@nextjs.org
以加入。