2026年8月,Hacktron 报告了 Next.js 图像优化中一个看似远程代码执行(RCE)的漏洞。他们的调查发现,存在漏洞的代码并不在 Next.js 本身,而是在上游的 libheif 中,这是一个被 Next.js、ImageMagick、WordPress、sharp 以及网络上大量软件所使用的 AVIF 图像解码器。
在 Hacktron 通知我们后不久,我们与他们合作,针对当前的 Next.js 构建复现了该 RCE,并将其披露给 sharp、libvips 和 libheif 的维护者。随后,我们在 Vercel 上部署了平台范围的缓解措施,并开始与维护者合作进行修复。
复制标题链接依赖链
Next.js 图像优化允许应用程序通过 <Image>
组件(next/image
)调整和优化图像。对于 AVIF 图像,图像处理依赖链如下:
<Image>
调用/_next/image
,/_next/image
调用 sharpsharp 调用 libvips
libvips 使用 libheif 解码图像


这意味着存在漏洞的代码不在 Next.js 中,但仍可通过 Next.js 图像优化触达。发送到图像优化端点的恶意 AVIF 图像会通过 sharp 和 libvips 调用 libheif。
因此,一个明显的缓解措施是在 Next.js 中禁用 AVIF 优化。恶意 AVIF 图像随后会在图像优化端点处停止,而不会被传递通过 sharp 和 libvips 到 libheif。该漏洞利用将不会向上游传播。
然而,仅缓解 Next.js 而没有上游修复,会带来披露问题。
复制标题链接披露漏洞并协调上游修复
在我们与 Hacktron 合作成功复现该问题后,我们在 Vercel 上推出了平台范围的缓解措施,并联系了 sharp、libvips 和 libheif 的维护者,披露该漏洞并开始着手修复。
以下是时间线:
8月11-12日:Hacktron 向 Vercel 报告了该问题;Hacktron 和 Vercel 通过可用的概念验证复现了 RCE。8月13日:Vercel 通过其图像优化服务应用了平台缓解措施。8月19日:Next.js 团队与 libvips 维护者会面,并开始在 sharp、libvips 和 libheif 之间进行协调。8月24日:Next.js 通知了其安全合作伙伴。8月25日:Next.js 发布了一个安全版本,禁用了 AVIF 优化。
Vercel 安全团队通过电子邮件联系了 sharp 和 libvips 的维护者,并通过 GitHub Security Advisory 与 libheif 展开了协调。Hacktron 也已向 libheif 提交了漏洞和利用细节。8 月 19 日,Next.js 团队与 libvips 维护者会面,并就 sharp、libvips 和 libheif 的后续处理路径达成一致。libheif 维护者继续通过 Hacktron 的 GitHub Security Advisory 进行修复。
8 月 24 日,Next.js 将其 libheif 漏洞及其对 Next.js 的影响告知了其安全合作伙伴(合作伙伴通知是 Next.js 安全发布流程中的常规环节)。
8 月 25 日,即 8 月 19 日会议六天后,libheif 维护者发布了 v1.23.2,修复了该 RCE。
复制标题链接Vercel 和 Next.js 的缓解措施
保护 Vercel 及其客户很直接:Vercel 上所有 Next.js 图片优化请求都经过一个中央 Image Optimization Service。因此,我们在该中央服务中禁用了 AVIF 优化和缩放。任何传入的 AVIF 图片都不会被传递给 libheif 进行解码,因此在 Vercel 上不可能发生 RCE。
保护自托管应用程序则需要发布一个 Next.js 版本。8 月 25 日,Next.js 发布了一个安全版本,该版本原本计划用于处理另一个单独的问题。在协调上游修复后,我们将 AVIF 缓解措施捆绑到该版本中,并比计划提前一天发布。该版本在 Next.js 中禁用了 AVIF 优化和缩放;鉴于已修补的 libheif 版本仍在向下游传播,这是最及时的选项。我们还发布了一份安全公告,以说明该问题的严重性。
复制标题链接我们致力于让 Web 更安全
发现的 OSS 漏洞数量持续增加,数字令人震惊:
2026 年,CVE 计划已发布超过 35,000 个 CVE。GitHub 上的私密漏洞报告
从 1 月的每周 500 份增长到 5 月的每周 3,000 份。GitHub 还报告称
2026 年 5 月审查了 1,560 份公告,这是公告数据库历史上最高的月度数量。
随着 LLM 加速漏洞研究,我们预计会看到更多像 libheif RCE 这样的上游漏洞在 OSS 生态系统中出现。近几个月来,Next.js 安全版本的数量有所增加,随着我们缓解自己和研究社区发现的新漏洞,我们预计这一趋势将持续下去。
我们致力于在攻击者之前主动发现漏洞,负责任地披露我们发现的一切,并与研究人员和维护者合作进行修复。
复制标题链接致谢
感谢 Hacktron 负责任地披露了 AVIF 漏洞,与我们合作复现该问题,并与上游维护者协调完成修复。
我们还要感谢 sharp、libvips 和 libheif 的维护者。他们在上游修复方面的工作,使得跨图像处理依赖链的协同修复成为可能。
我们与一批才华横溢的研究人员合作,通过 Vercel 开源漏洞赏金计划 来保障 Next.js 及其他开源框架的安全。欢迎任何有兴趣为符合条件的框架安全做出贡献的人参与其中。
