На главную

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

2 мин
Vercel исправила критическую уязвимость ImageResponse в Next.js, позволявшую выполнять код на сервере

Материал подготовлен искусственным интеллектом на основе нескольких источников — ссылки на оригиналы приведены ниже.

22 сентября Vercel выпустила Next.js 16.3.6, исправив критическую уязвимость в функции ImageResponse, которая могла позволить выполнить код на сервере через специально созданный SVG. Уязвимость, получившая идентификатор CVE-2026-94545, затрагивает версии Next.js с 16.2.0 по 16.3.5 при работе ImageResponse в среде Node.js, используемой по умолчанию. По состоянию на 23 сентября публичных эксплойтов или атак не зафиксировано.

Ключевые факты

  • CVE-2026-94545 затрагивает Next.js с 16.2.0 по 16.3.5 при работе ImageResponse в среде Node.js, используемой по умолчанию.
  • Vercel оценивает уязвимость как критическую с оценкой CVSS 9,5.
  • Исправление выпущено 22 сентября в версии Next.js 16.3.6, которая является единственной пропатченной версией.
  • Версия ImageResponse для Edge и Next.js 15 не подвержены уязвимости.
  • По состоянию на 23 сентября публичных эксплойтов или сообщений об атаках с использованием уязвимости не обнаружено.

Детали уязвимости

Уязвимость находится в ImageResponse — функции Next.js, которая генерирует Open Graph и другие изображения для социальных превью. ImageResponse использует Satori, библиотеку Vercel, для преобразования макета изображения в SVG-код перед генерацией финального PNG. Согласно рекомендации Vercel, уязвимы приложения, которые передают контролируемые злоумышленником значения в SVG-контент, атрибуты или стили во время генерации изображения. В примере из рекомендации значение берётся из URL запроса и помещается внутрь элемента title в SVG. В рекомендации не указано, считается ли уязвимым текст в обычных элементах, например заголовок внутри div.

Затронутые версии и исправление

Уязвимость затрагивает Next.js с 16.2.0 по 16.3.5 при работе ImageResponse в среде Node.js, которую Next.js использует по умолчанию. Vercel исправила уязвимость 22 сентября в версии 16.3.6, единственном пропатченном релизе. По состоянию на 23 сентября в реестре npm не было исправленного релиза для ветки 16.2, поэтому приложениям на 16.2 необходимо обновиться до 16.3.6. Next.js 15.5.26 добавляет дополнительное усиление безопасности для next/og в ветке 15.5. Версия ImageResponse для Edge не подвержена уязвимости, как и Next.js 15.

Обнаружение и обходные пути

Чтобы найти, где приложение использует эту функцию, разработчикам следует искать импорт ImageResponse из next/og, например в обработчиках маршрутов и файлах opengraph-image. Обработчики маршрутов генерируют изображение при поступлении запроса, а файл opengraph-image может генерировать его во время сборки или по запросу. Если обновление приходится отложить, рекомендация Vercel советует не допускать попадания контролируемых злоумышленником значений в SVG-контент, атрибуты и стили, которые рендерит Node.js ImageResponse. В рекомендации не предлагается переходить на не подверженную уязвимости версию Edge, а документация Next.js помечает среду Edge как устаревшую. По состоянию на 23 сентября npm audit не помечал Next.js 16.3.5, уязвимую версию, а рекомендация ещё не была внесена в GitHub Advisory Database.

1 источник

Время · отставание