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




Next.js 中 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 通过其图像优化服务(Image Optimization Service)应用了平台缓解措施。
- 8 月 19 日:Next.js 团队与 libvips 维护者会面,并开始在 sharp、libvips 和 libheif 之间展开协调。
- 8 月 24 日:Next.js 通知了其安全合作伙伴。
- 8 月 25 日:Next.js 发布了禁用 AVIF 优化的安全版本。
Vercel 安全团队通过电子邮件联系了 sharp 和 libvips 的维护者,并通过 GitHub 安全公告(GitHub Security Advisory)与 libheif 展开协调。Hacktron 也已向 libheif 提交了漏洞和利用的详细信息。8 月 19 日,Next.js 团队与 libvips 维护者会面,并就 sharp、libvips 和 libheif 之间的后续路径达成一致。libheif 维护者则通过 Hacktron 的 GitHub 安全公告继续推进修复。
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 图像优化请求都会经过一个集中的图像优化服务。因此,我们在该集中服务中禁用了 AVIF 优化和缩放。任何传入的 AVIF 图像都不会交给 libheif 解码,因此在 Vercel 上无法实现 RCE。
保护自托管应用则需要发布 Next.js 新版本。8 月 25 日,Next.js 发布了一个安全版本,该版本原本计划用于解决另一个问题。在协调上游修复之后,我们把 AVIF 缓解措施并入该版本,比原计划提前一天发布。该版本在 Next.js 中禁用了 AVIF 优化和缩放;鉴于已修复的 libheif 版本仍在向下游传播,这是最及时的选择。我们还发布了一份安全公告,以说明该问题的严重程度。
我们让网络更安全的承诺
被发现的开源软件漏洞数量持续攀升,数字之大令人不堪重负:
- 2026 年,CVE 计划已发布超过 35,000 个 CVE。
- GitHub 上的私密漏洞报告从 1 月的每周 500 份增长到 5 月的每周 3,000 份。
- GitHub 还报告称,2026 年 5 月有 1,560 份经审核的安全公告,为该公告数据库有史以来的最高月度数量。
随着 LLM 加速漏洞研究,我们预计开源生态中会出现更多像 libheif RCE 这样的上游漏洞。近几个月来 Next.js 安全版本的发布数量有所增加,随着我们缓解由我们自己和研究社区发现的新漏洞,预计这一趋势还将持续。
我们致力于抢在攻击者之前主动发现漏洞,负责任地披露我们发现的一切,并与研究人员和维护者合作修复。
致谢
感谢 Hacktron 负责任地披露 AVIF 漏洞,与我们合作复现问题,并在修复过程中与上游维护者保持协调。
我们还要感谢 sharp、libvips 和 libheif 的维护者。他们在上游修复上的工作,使整条图像处理依赖链上的协同修复成为可能。
我们通过 Vercel 开源漏洞赏金计划与一批才华横溢的研究人员合作,保障 Next.js 及其他开源框架的安全。欢迎任何有意为符合条件的框架的安全做出贡献的人参与其中。
