Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Vosproizvedenie raskrytie i ispravlenie uyazvimosti v libheif sovmestno s hacktr
Dev48

© 2026 · All rights reserved.

Воспроизведение, раскрытие и исправление уязвимости в libheif совместно с Hacktron и сопровождающими

Источник: Vercel

Воспроизведение, раскрытие и исправление уязвимости в libheif совместно с Hacktron и сопровождающими

Источник: Vercel

Как Vercel и Hacktron координировали исправление уязвимости удаленного выполнения кода, которая затрагивала оптимизацию изображений в Next.js через sharp, libvips и libheif.

28 сентября 2026 г.•Обновлено: 28 сентября 2026 г.

В августе 2026 года Hacktron сообщил о том, что выглядело как уязвимость удаленного выполнения кода (RCE) в функции оптимизации изображений Next.js. В ходе расследования выяснилось, что уязвимый код находился не в самом Next.js, а выше по цепочке зависимостей — в libheif, декодере изображений AVIF, который используется в Next.js, ImageMagick, WordPress, sharp и значительной части веб-экосистемы.

Вскоре после того, как Hacktron уведомила нас, мы совместно с ними воспроизвели RCE на актуальной сборке Next.js и сообщили об уязвимости сопровождающим sharp, libvips и libheif. Затем мы развернули митигацию на уровне всей платформы Vercel и начали работать с сопровождающими над исправлением.

Copy link to headingЦепочка зависимостей

Функция оптимизации изображений Next.js позволяет приложениям изменять размер и оптимизировать изображения с помощью компонента <Image> (next/image). Для изображений AVIF цепочка зависимостей обработки изображений выглядит следующим образом:

  • <Image> вызывает /_next/image,

<Image> вызывает /_next/image,

  • /_next/image вызывает sharp

/_next/image вызывает sharp

  • sharp вызывает libvips

sharp вызывает libvips

  • libvips использует libheif для декодирования изображения

libvips использует libheif для декодирования изображения

Это означало, что уязвимый код находился не в Next.js, но к нему по-прежнему можно было получить доступ через оптимизацию изображений Next.js. Зловредное изображение AVIF, отправленное на эндпоинт оптимизации изображений, вызывало бы libheif через sharp и libvips.

Таким образом, одним из очевидных способов митигации было отключение оптимизации AVIF в Next.js. В этом случае вредоносные изображения AVIF останавливались бы на эндпоинте оптимизации изображений, вместо того чтобы передаваться через sharp и libvips в libheif. Эксплойт не распространялся бы дальше вверх по цепочке.

Тем не менее, митигация только в Next.js без исправления на стороне вышестоящих зависимостей создавала проблемы с раскрытием информации.

Copy link to headingРаскрытие уязвимости и координация исправления на стороне зависимостей

После того как мы совместно с Hacktron успешно воспроизвели проблему, мы развернули митигацию на уровне всей платформы Vercel и обратились к сопровождающим sharp, libvips и libheif, чтобы раскрыть уязвимость и начать работу над исправлением.

Вот хронология событий:

  • 11–12 августа: Hacktron сообщила о проблеме в Vercel; Hacktron и Vercel воспроизвели RCE с помощью работающего доказательства концепции.

11–12 августа: Hacktron сообщила о проблеме в Vercel; Hacktron и Vercel воспроизвели RCE с помощью работающего доказательства концепции.

  • 13 августа: Vercel применила митигацию на уровне платформы с помощью своей службы оптимизации изображений.

13 августа: Vercel применила митигацию на уровне платформы с помощью своей службы оптимизации изображений.

  • 19 августа: Команда Next.js встретилась с сопровождающим libvips и начала координацию между sharp, libvips и libheif.

19 августа: Команда Next.js встретилась с сопровождающим libvips и начала координацию между sharp, libvips и libheif.

  • 24 августа: Next.js уведомила своих партнеров по безопасности.

24 августа: Next.js уведомила своих партнеров по безопасности.

  • 25 августа: Next.js выпустила обновление безопасности, отключающее оптимизацию AVIF.

25 августа: Next.js выпустила обновление безопасности, отключающее оптимизацию AVIF.

Команда безопасности Vercel связалась с сопровождающими sharp и libvips по электронной почте и начала координацию с libheif через GitHub Security Advisory. Hacktron также предоставила детали уязвимости и эксплойта для libheif. 19 августа команда Next.js встретилась с сопровождающим libvips и согласовала дальнейшие действия для sharp, libvips и libheif. Сопровождающий libheif продолжил работу по устранению уязвимости в рамках GitHub Security Advisory, открытого Hacktron.

24 августа Next.js уведомила своих партнеров по безопасности об уязвимости в libheif и ее влиянии на Next.js (уведомления партнеров являются стандартной частью процесса выпуска обновлений безопасности Next.js).

25 августа, спустя шесть дней после встречи 19 августа, сопровождающий libheif выпустил версию v1.23.2, в которой уязвимость RCE была устранена.

Copy link to headingМитигации в Vercel и Next.js

Обеспечение безопасности Vercel и ее клиентов оказалось прямолинейным: все запросы оптимизации изображений Next.js на Vercel проходят через централизованную службу оптимизации изображений. Поэтому мы отключили оптимизацию и изменение размера AVIF в этой центральной службе. Любые входящие изображения AVIF не передавались в libheif для декодирования, и RCE на Vercel была невозможна.

Защита саморазвертываемых приложений потребовала выпуска новой версии Next.js. 25 августа Next.js published a security release, релиз которого изначально планировался для решения другой проблемы. После координации исправления в вышестоящей зависимости мы включили митигацию AVIF в этот выпуск и опубликовали его на день раньше запланированного срока. В этом релизе была отключена оптимизация и изменение размера AVIF в Next.js; учитывая, что пропатченная версия libheif еще распространялась по цепочке зависимостей, это было самым своевременным решением. Мы также опубликовали бюллетень по безопасности, чтобы сообщить о степени серьезности проблемы.

Copy link to headingНаша приверженность идее повышения безопасности веб-среды

Объем обнаруживаемых уязвимостей в ПО с открытым исходным кодом продолжает расти, и эти цифры поражают воображение:

Поскольку языки на базе ИИ ускоряют исследования уязвимостей, мы ожидаем появления новых уязвимостей вышестоящих зависимостей, аналогичных RCE в libheif, во всей экосистеме Open Source. В последние месяцы количество релизов безопасности Next.js увеличилось, и мы ожидаем, что эта тенденция сохранится по мере устранения новых уязвимостей, которые обнаруживаем как мы, так и исследовательское сообщество.

Мы стремимся упреждающе находить уязвимости раньше злоумышленников, ответственно раскрывать всю найденную информацию и сотрудничать с исследователями и сопровождающими над исправлениями.

Copy link to headingБлагодарности

Спасибо Hacktron за ответственное раскрытие уязвимости AVIF, совместную работу по воспроизведению проблемы и координацию с сопровождающими зависимостей в процессе устранения.

Мы также хотим поблагодарить сопровождающих sharp, libvips и libheif. Их работа над исправлениями в зависимостях сделала возможным скоординированное устранение уязвимости по всей цепочке обработки изображений.

Мы сотрудничаем с талантливыми исследователями для обеспечения безопасности Next.js и других фреймворков с открытым исходным кодом с помощью программы выплаты вознаграждений за найденные уязвимости в Open Source от Vercel. Мы призываем всех, кто хочет внести свой вклад в безопасность поддерживаемых фреймворков, принять в ней участие.

Copy link to headingСсылки

← Все статьи

Ещё в разделе «Разработка ПО»

Все →
Air Teams: внедрите лучшие агентные рабочие процессы во всей команде и автоматизируйте повторяющиеся задачи
JetBrains

Air Teams: внедрите лучшие агентные рабочие процессы во всей команде и автоматизируйте повторяющиеся задачи

Выпущен Rider 2026.2.3!
JetBrains

Выпущен Rider 2026.2.3!

Более надежная схема компиляции для модулей Kotlin Multiplatform
JetBrains

Более надежная схема компиляции для модулей Kotlin Multiplatform

BOB в гостиничном бизнесе: руководство по Business on Books и OTB
Hotelogix

BOB в гостиничном бизнесе: руководство по Business on Books и OTB

Insyde® Software подтверждает лидерство в области безопасности микропрограмм на конференции FTA 2026
Insyde Software

Insyde® Software подтверждает лидерство в области безопасности микропрограмм на конференции FTA 2026

Обзор Sennheiser Momentum 5: великолепный звук, невероятное время автономной работы и минимум компромиссовПресса
Momentum

Обзор Sennheiser Momentum 5: великолепный звук, невероятное время автономной работы и минимум компромиссов

Ещё от Vercel

Предстоящий выпуск безопасности Next.js в сентябре
Vercel

Предстоящий выпуск безопасности Next.js в сентябре

Обновление безопасности Next.js в связи с критической уязвимостью в вышестоящей зависимости
Vercel

Обновление безопасности Next.js в связи с критической уязвимостью в вышестоящей зависимости

Предстоящее обновление безопасности Next.js в связи с критической уязвимостью в вышестоящей зависимости
Vercel

Предстоящее обновление безопасности Next.js в связи с критической уязвимостью в вышестоящей зависимости

Как мы закрыли 1500 репозиторных задач на GitHub за один месяц
Vercel

Как мы закрыли 1500 репозиторных задач на GitHub за один месяц

Модели с открытыми весами занимают 56% объема токенов, Astra удваивает расходы по сравнению с Fable 5.1
Vercel

Модели с открытыми весами занимают 56% объема токенов, Astra удваивает расходы по сравнению с Fable 5.1

Программа Bug Bounty от Vercel теперь доступна публично
Vercel

Программа Bug Bounty от Vercel теперь доступна публично