Vercel News

Reproducing, disclosing, and fixing the libheif vulnerability with Hacktron and the maintainers

8.5内容质量

TL;DR · AI 摘要

Vercel与Hacktron合作发现并修复libheif库的RCE漏洞,通过依赖链分析和跨维护者协调完成漏洞修复。

核心要点

  • libheif漏洞通过sharp和libvips传播至Next.js图像优化组件
  • Vercel于2026年8月13日部署平台级缓解措施
  • 修复过程涉及3个维护者团队的跨库协作

结构提纲

按章节快速跳转。

  1. Hacktron报告Next.js图像优化组件存在上游libheif库的RCE漏洞

  2. AVIF图像处理依赖链包含sharp、libvips和libheif三个关键组件

  3. Vercel通过禁用AVIF优化实现平台级漏洞缓解

  4. Vercel与sharp、libvips、libheif维护者协作推进漏洞修复

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • libheif漏洞修复过程
    • 漏洞发现
      • Hacktron报告
      • Vercel复现
    • 依赖链分析
      • sharp
      • libvips
      • libheif
    • 修复协调
      • 平台缓解
      • 跨库协作

金句 / Highlights

值得收藏与分享的关键句。

#安全漏洞#依赖管理#Next.js#libheif
打开原文

与 Hacktron 及维护者共同复现、披露并修复 libheif 漏洞 - Vercel

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 调用 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 使用可行的 PoC 复现了 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 图像优化请求均通过中央图像优化服务处理。因此,我们在该中央服务中禁用了 AVIF 优化和缩放功能。任何传入的 AVIF 图像均不会传递给 libheif 进行解码,从而在 Vercel 上完全消除了远程代码执行(RCE)的可能。

保护自托管应用需要 Next.js 的版本更新。8月25日,Next.js 发布了一个安全更新,该版本原本计划用于修复其他问题。在协调上游修复方案后,我们将 AVIF 防御措施整合到该版本中,并比原计划提前一天发布。此版本在 Next.js 中禁用了 AVIF 优化和缩放功能;由于修补后的 libheif 版本仍在向下游传播,这是最及时的解决方案。我们还发布了安全公告,以说明该问题的严重性。

复制链接到标题 我们对构建更安全网络的承诺

开源软件(OSS)漏洞的发现数量持续增长,数据规模令人震惊:

  • 到2026年,CVE 计划已发布超过35,000个CVE。
  • GitHub 上的私有漏洞报告数量从1月每周500个增长到5月每周3,000个。
  • GitHub 在2026年5月报告了1,560个已审查的漏洞公告,创下了漏洞数据库历史上最高的月度记录。

随着大语言模型(LLMs)加速漏洞研究,我们预计未来将在整个开源生态系统中发现更多类似 libheif RCE 的上游漏洞。最近几个月 Next.js 的安全更新频率显著增加,随着我们与研究社区共同发现并修复新漏洞,这一趋势预计将持续下去。

我们承诺在攻击者之前主动发现漏洞,负责任地披露所有发现内容,并与研究人员和维护者合作推进修复方案。

复制链接到标题 致谢

感谢 Hacktron 负责披露 AVIF 漏洞,协助我们复现问题,并通过修复方案与上游维护者协调。

我们也要感谢 sharp、libvips 和 libheif 的维护者。他们在上游修复方案上的工作,使得图像处理依赖链上的协同修复成为可能。

通过 Vercel 的开源漏洞赏金计划,我们与一群才华横溢的研究人员合作,共同保障 Next.js 及其他开源框架的安全。任何有兴趣为符合条件的框架安全做贡献的人,都欢迎参与该计划。

复制链接到标题 参考资料

  • Next.js 2026年8月安全更新
  • 上游 libheif 安全公告
  • Vercel 安全更新变更日志
  • 一个关于漏洞的传闻就足以发现安全利用方式