Next.js 紧急修复 9 个安全漏洞:SSRF、认证绕过与 DoS,你升级了吗?
Next.js 紧急修复 9 个安全漏洞:SSRF、认证绕过与 DoS,你升级了吗?
一、背景:月度安全发布机制启动
2026 年 7 月 20 日,Vercel 发布了 Next.js 的首次月度安全更新,一次性修复了 9 个安全漏洞,其中 4 个为高危级别。这标志着 Next.js 正式进入了月度安全发布的新阶段——不再零散发布补丁,而是将多个修复打包成协调更新。
本次修复的版本为:
- Next.js 16.2.11(Active LTS 活跃维护版)
- Next.js 15.5.21(Maintenance LTS 维护版)
值得注意的是,13.x 和 14.x 等更旧的版本将不会收到回溯补丁。如果你的项目还在运行这些版本,必须升级到 15.x 或 16.x 才能获得安全修复。
二、高危漏洞详解
2.1 CVE-2026-64645:Rewrites 导致的 SSRF(高危)
这是本次最严重的漏洞。当应用的 rewrites() 或 redirects() 规则使用攻击者可控的请求数据来构造目标主机名时,攻击者可以迫使服务器向内部端点发送请求,探测内网服务。
影响范围:Next.js 12.0.0 - 15.5.21、16.0.0 - 16.2.11
风险场景:
// 危险写法:用用户输入的 host 构造 rewrite 目标
async function rewrites() {
return [
{
source: '/proxy/:path*',
destination: `https://${req.headers['x-target-host']}/:path*`,
}
]
}
如果你的项目中有类似动态构造 rewrite 目标的逻辑,建议立即审计。
2.2 CVE-2026-64649:自定义服务器上的 Server Actions SSRF(高危)
在自定义 Node.js 服务器上运行的 Server Actions 存在 SSRF 漏洞,攻击者可以将出站的 Server Action 请求重定向到其控制的基础设施。
影响范围:使用自定义 Server(如 Express 集成)且启用 Server Actions 的应用。
2.3 CVE-2026-64642:中间件认证绕过(高危)
这可能是对生产应用最危险的漏洞。在使用 Turbopack 构建的 App Router 应用中,如果配置了传统的 middleware.ts 且单语言国际化设置,攻击者可以完全绕过授权检查。
影响场景:依赖中间件做路由鉴权的后台系统、管理面板等。
2.4 CVE-2026-64641:Server Actions 导致的 DoS(高危)
通过恶意构造的 Server Actions 请求,可以触发 App Router 应用的拒绝服务。
三、中危漏洞一览
| CVE 编号 | 漏洞类型 | 简述 |
|---|---|---|
| CVE-2026-64646 | DoS | Edge Runtime 中 Server Action 负载无限制,可耗尽内存 |
| CVE-2026-64644 | DoS | 恶意 SVG 文件可导致图片优化 API 崩溃 |
| CVE-2026-64648 | 缓存混淆 | 某些缓存配置下,一个用户的响应可能返回给另一个用户 |
| CVE-2026-64647 | 缓存混淆 | 含无效 UTF-8 字节序列的 fetch 请求体可能触发缓存错乱 |
| CVE-2026-64643 | 信息泄露 | Cache Components 与反射型 Server Actions 联用时暴露内部端点标识 |
其中缓存混淆类漏洞(CVE-2026-64648 / 64647)对多租户应用尤其值得关注——用户数据串台在 SaaS 场景下可能造成严重后果。
四、升级指南
立即升级
# Next.js 16.x 用户
npm install next@16.2.11
# Next.js 15.x 用户
npm install next@15.5.21
升级后的自查清单
- 检查 rewrites/redirects 配置:是否使用了用户可控数据构造目标 URL?
- 审查中间件逻辑:你的鉴权中间件是否覆盖了所有受保护路由?
- 检查缓存策略:是否使用了带请求体的缓存 fetch?
- 确认 Server Actions 使用:是否在自定义服务器上运行?
仍在使用 13/14 版本的团队
旧版本不再获得安全补丁。建议制定升级计划:
- 13.x → 15.x:可以分阶段升级,先到 14 再到 15
- 14.x → 15.x:App Router 项目升级成本较低
- 优先升级有对外暴露的生产应用
五、个人观点
这次批量修复暴露了一个事实:Next.js 作为最流行的 React 框架,其攻击面也在不断扩大。从 Server Actions 到 Rewrites,从中间件到图片优化,每一个新功能都可能引入新的安全风险。
对开发者而言,有几点建议:
- 关注安全公告:订阅 Vercel 安全邮件列表,第一时间获取补丁信息
- 保持版本更新:至少停留在受支持的 LTS 版本上
- 最小权限原则:Server Actions 只暴露必要的操作,中间件做好兜底校验
- 安全左移:在 CI 中加入依赖漏洞扫描(如
npm audit或 Snyk)
安全不是一次性的工作,而是持续的过程。这次 Next.js 转向月度安全发布,对整个生态来说是一件好事——更可预期的补丁节奏,意味着团队可以更好地规划升级工作。
你的项目升级了吗?如果在升级过程中遇到问题,欢迎在评论区交流。