内容提要
2026年8月,Hacktron发现Next.js图像优化存在RCE漏洞,根源在上游AVIF解码器libheif,可经sharp、libvips影响大量网站。Vercel先禁用AVIF优化缓解,并与维护者协作修复。8月25日Next.js发布安全版本禁用AVIF优化,libheif随后发布v1.23.2修复漏洞。
延伸解读
漏洞根源与影响范围
漏洞实际位于上游AVIF解码器libheif,而非Next.js本身。但通过Next.js图像优化链路(<Image>组件→/_next/image→sharp→libvips→libheif),恶意AVIF图片可触发RCE。由于libheif被ImageMagick、WordPress、sharp等广泛使用,影响范围远超Next.js,大量网站可能受波及。
修复时间线与协调披露
从8月11日Hacktron报告到8月25日libheif发布v1.23.2修复,整个过程仅两周。Vercel在8月13日即部署平台缓解,Next.js团队与libvips维护者会面协调,最终Next.js安全版本禁用AVIF优化,libheif随后修复。这体现了跨项目协调披露的效率。
缓解措施与用户应对
Vercel平台通过中央图像优化服务禁用AVIF优化和缩放,使恶意图片无法到达libheif。自托管应用需升级Next.js安全版本,该版本同样禁用AVIF优化。在libheif修复传播期间,禁用AVIF优化是最及时的缓解手段,用户应尽快应用更新。
开源安全趋势与启示
文章指出2026年CVE数量已超3.5万,GitHub私有漏洞报告从每周500增至3000,LLM加速了漏洞研究。预计更多上游漏洞将浮现,Next.js安全发布频率可能增加。这提醒开发者需关注依赖链安全,及时更新组件,并参与漏洞赏金计划。
Q&A
Next.js 图像优化中的 RCE 漏洞根源在哪里?
漏洞根源不在 Next.js 本身,而是在上游的 libheif 库中。libheif 是一个 AVIF 图像解码器,被 Next.js、ImageMagick、WordPress、sharp 等广泛使用。
这个漏洞是如何通过 Next.js 图像优化被触发的?
Next.js 图像优化通过 <Image> 组件调用 /_next/image 端点,该端点使用 sharp,sharp 调用 libvips,libvips 使用 libheif 解码 AVIF 图像。因此,向图像优化端点发送恶意 AVIF 图像会通过 sharp 和 libvips 调用 libheif,从而触发漏洞。
Vercel 和 Next.js 采取了哪些缓解措施?
Vercel 在其中央图像优化服务中禁用了 AVIF 优化和调整大小,阻止恶意 AVIF 图像到达 libheif。Next.js 在 8 月 25 日发布安全版本,禁用了 AVIF 优化和调整大小,比原计划提前一天发布。
漏洞的披露和修复时间线是怎样的?
8 月 11-12 日:Hacktron 向 Vercel 报告,并与 Vercel 复现 RCE。8 月 13 日:Vercel 应用平台缓解。8 月 19 日:Next.js 团队与 libvips 维护者会面,协调 sharp、libvips、libheif 的修复。8 月 24 日:Next.js 通知安全合作伙伴。8 月 25 日:Next.js 发布安全版本禁用 AVIF 优化;libheif 维护者发布 v1.23.2 修复 RCE。
libheif 漏洞最终是如何修复的?
libheif 维护者通过 Hacktron 提交的 GitHub Security Advisory 进行修复,并于 8 月 25 日发布 v1.23.2 版本,修复了 RCE 漏洞。
为什么开源软件漏洞数量在增加?
文章指出,2026 年 CVE 项目已发布超过 35,000 个 CVE;GitHub 上的私有漏洞报告从 1 月的每周 500 份增长到 5 月的每周 3,000 份;2026 年 5 月 GitHub 审核了 1,560 份安全公告,创历史新高。LLM 加速了漏洞研究,预计更多上游漏洞会浮现。