Next.js 针对上游漏洞的安全更新

Next.js 针对上游漏洞的安全更新

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

Next.js 发布安全更新,修复三个漏洞:use cache 函数返回类型化数组可致未认证远程代码执行(严重);SVG 图像优化 API 存在内存漏洞可致远程代码执行(严重);Server Actions 可被构造请求耗尽 CPU 导致拒绝服务(高危)。建议升级至 16.4.1 或 15.5.28。

🔎

延伸解读

两个严重漏洞的触发条件与影响范围

文章指出,use cache 函数返回多个类型化数组时,可导致未认证远程代码执行,且没有已知的缓解措施,即使应用没有类似函数也应立即升级。另一个严重漏洞位于 SVG 图像优化 API,仅当 Next.js 运行在基于 glibc 的 Linux 上时可能被利用,临时缓解方案是确保 sharp 版本不低于 0.35.5。

Server Actions 拒绝服务漏洞的适用边界

该高危漏洞仅影响使用 App Router 且至少包含一个 Server Action 的应用。攻击者通过构造请求可造成 CPU 占用过高,阻塞同一进程内后续请求的处理,从而形成拒绝服务。使用 Pages Router 或未使用 Server Actions 的应用不受影响,这有助于开发者快速判断自身风险。

修复版本与升级建议

官方已在 v16.4.1(Active LTS)和 v15.5.28(Maintenance LTS)中提供修复。对于 15.5 分支应安装 next@15.5.28,16 分支应安装 next@16.4.1。升级 Next.js 还能让包管理器自动为 Next.js 提供已修复的 sharp 版本,从而一并解决图像优化相关的上游依赖问题。

❓

Q&A

Next.js 这次安全更新修复了哪些漏洞?

修复了三个漏洞:1) use cache 函数返回类型化数组可导致未认证远程代码执行(严重);2) SVG 图像优化 API 存在内存漏洞可导致远程代码执行(严重);3) Server Actions 可被构造请求耗尽 CPU 导致拒绝服务(高危)。

我应该升级到哪个 Next.js 版本?

建议升级至 v16.4.1(Active LTS)或 v15.5.28(Maintenance LTS)。

use cache 函数返回类型化数组的漏洞有什么影响?

该漏洞可导致未认证远程代码执行,严重级别。使用 App Router 和 Cache Components 的应用受影响,且没有已知的缓解措施,建议立即升级。

SVG 图像优化漏洞的临时缓解措施是什么?

确保 Next.js 使用的 sharp 版本为 0.35.5 或更高。升级 Next.js 到修复版本可确保包管理器自动提供修复后的 sharp 版本。

哪些应用受 Server Actions 拒绝服务漏洞影响?

使用 App Router 且至少有一个 Server Action 的应用受影响。使用 Pages Router 或未使用 Server Actions 的应用不受影响。

如何报告 Next.js 的安全问题?

可以通过 Vercel 的开源漏洞赏金计划参与,任何有关安全计划或漏洞管理的问题可发送至 security@vercel.com。

🏷️

标签

➡️

继续阅读