Яндекс.Метрика
Услуги Портфолио Контакты БлогНовости +7 (800) 511‑32‑27 Обсудить проект
Безопасность

Next.js закрыл два критических RCE: AVIF heap overflow и Windows path traversal

30 августа 2026·7 мин чтения
CVE-2026-75604Next.js RCE
Next.js RCE: два критических уязвимости AVIF и Windows закрыты в августе 2026

Коротко о главном

25 августа 2026 года Vercel выпустила экстренные патчи Next.js 15.5.24 и 16.3.3, устраняющие два критических RCE: heap overflow в библиотеке libheif при обработке AVIF-изображений (CVSS 9.5) и path traversal на Windows-серверах CVE-2026-75604 (CVSS 9.0). Ни для одной из уязвимостей обходного пути не существует — веб-проекты на Next.js необходимо обновить немедленно.

Next.js используется более чем в 45 миллионах проектов. Обе уязвимости позволяют неаутентифицированному атакующему выполнить произвольный код на сервере без какого-либо взаимодействия с пользователем. Исправления вошли в версии 15.5.24 (линейка Maintenance LTS) и 16.3.3 (Active LTS); более старые ветки патча не получат. Приложения на Vercel защищены автоматически — без обновлений и пересборки.

Если ваша команда ведёт аудит кода приложения или плановую проверку зависимостей, обе уязвимости должны быть первыми в списке на следующей итерации: они затрагивают все основные ветки фреймворка и не требуют сложных условий для эксплуатации.

CVE-2026-75604: path traversal и RCE на Windows-серверах

Первая уязвимость — CVE-2026-75604 (GHSA-p293-qw3h-jr36, CVSS 9.0) — возникает в приложениях, которые одновременно используют Pages Router и App Router без Cache Components, и развёрнуты на сервере с файловой системой Windows. Linux и macOS этот вектор не затрагивает.

Атакующий может через специально сформированный HTTP-запрос выйти за пределы дозволенных директорий и добраться до произвольных файлов, а при стечении обстоятельств — до выполнения кода с привилегиями процесса. Точный механизм эксплуатации Vercel не раскрыла, однако подчеркнула: обходного пути не существует — обновление обязательно. Баг был обнаружен и ответственно раскрыт исследователями evolutionstorm и B0RI через программу Vercel Bug Bounty.

Уязвимость присутствует в Next.js версий 13.4–15.5.23 и 16.0–16.3.2. Именно поэтому команды, застрявшие на ветке 14.x или ранних 15.x на Windows-хостинге, находятся в зоне риска — даже при использовании «последней» 14-й версии.

AVIF heap overflow: как libheif стал вектором атаки на Next.js

Вторая уязвимость связана не с кодом Next.js напрямую, а с его зависимостью. Для оптимизации изображений Next.js использует библиотеку sharp, которая в свою очередь опирается на libheif для разбора AVIF-файлов. В libheif была обнаружена критическая ошибка: специально сформированный AVIF-файл с вложенными ссылками на identity-derivation и auxiliary items заставляет libheif собрать декодированное изображение с двумя записями Alpha-плоскости разной глубины. Скейлер выделяет буфер под первую, 8-битную запись, но затем записывает в него 16-битные значения второй, выходя за границу буфера примерно на 16 384 байта.

Исследователи rootxharsh (Finder) и KarimPwnz (Coordinator) опубликовали полноценный Python-PoC, воспроизводящий повреждение кучи, а сами авторы заявили, что им удалось получить RCE на нескольких реальных приложениях. Уязвимость получила идентификаторы GHSA-2xp9-vwfh-vxw4 (для Next.js) и GHSA-g89c-p67h-r497 (для libheif), CVSS 9.5 по шкале CVSSv4.

Важное ограничение: уязвимость активируется только в том случае, если сайт явно включил оптимизацию AVIF через опцию formats: ['image/avif', ...] в файле next.config.js. Если конфигурация не содержит этой строки, вектор атаки закрыт. Патч Next.js полностью отключает оптимизацию AVIF до момента, пока upstream libheif не выпустит исправление в версии 1.23.2 и выше.

Затронутые версии и порядок обновления

CVE-2026-75604 (Windows path traversal) затрагивает Next.js 13.4–15.5.23 и 16.0–16.3.2. Уязвимость AVIF — Next.js 10.0.0–15.5.23 и весь диапазон 16.x до 16.3.2 включительно.

Патчи вышли 25 августа 2026 года и доступны как:

  • Next.js 15.5.24 — ветка Maintenance LTS (для проектов на 15.x)
  • Next.js 16.3.3 — ветка Active LTS (для проектов на 16.x)

Для обновления достаточно одной команды:

npm install next@15.5.24   # для ветки 15.5
npm install next@16.3.3    # для ветки 16.3

Ветки 13.x и 14.x патча не получат. Если ваш проект работает на них, рекомендуется ускорить переход на 15.5.24 или 16.3.3. Стоит также обновить sharp (npm install sharp@latest), чтобы получить актуальную версию libheif после выхода upstream-патча.

Что это значит для команд разработки

Случай с Next.js демонстрирует две сложности, которые сегодня типичны для современного веб-стека. Первая — транзитивные зависимости. Команда не изменила ни строчки в парсере изображений, но оказалась в зоне риска из-за upstream-библиотеки. Это аргумент в пользу регулярного сканирования зависимостей — не только первого уровня, но и вложенных. Инструменты вроде npm audit, Snyk или Dependabot должны быть частью CI, а не ручной процедурой.

Вторая сложность — платформозависимые уязвимости. CVE-2026-75604 проявляется только на Windows, что затрудняет обнаружение: если пайплайн тестирования работает на Linux, баг в нём никогда не воспроизведётся. Команды, деплоящие Next.js на Windows Server или IIS, должны проверить свои среды в первую очередь.

Для проектов, которые не могут обновиться мгновенно (легаси-код, заблокированные зависимости), временным смягчением может служить WAF-правило, фильтрующее запросы с подозрительными паттернами обхода пути. Для AVIF — временное отключение оптимизации через удаление image/avif из конфига. Но это именно временные меры: патч является единственным надёжным решением.

Как снизить риски при работе с Next.js

Несколько практических шагов, актуальных независимо от этого инцидента:

  • Зафиксируйте версию в package.json. Используйте точные версии или ~ вместо ^ для критичных зависимостей. Это замедляет нечаянные апгрейды, но делает поверхность атаки предсказуемой.
  • Настройте Dependabot или Renovate. Автоматические PR на обновление зависимостей позволяют не пропустить security-патч — особенно когда он выходит в пятницу вечером.
  • Ограничьте Surface Area оптимизации изображений. Если AVIF вам не нужен — не включайте его. Минимальная конфигурация = минимальная поверхность атаки.
  • Включите npm audit в CI/CD. Шаг занимает секунды и блокирует деплой при наличии критических уязвимостей в дереве зависимостей.
  • Следите за каналами безопасности Vercel. Vercel публикует changelog на vercel.com/changelog и security-advisories через GitHub Security Advisories — подпишитесь на репозиторий vercel/next.js.

Часто задаваемые вопросы

Нужно ли обновляться, если Next.js задеплоен на Vercel? Нет. Vercel защитила все свои приложения автоматически без обновлений или пересборки.

Затронуты ли приложения Next.js на Linux и macOS? CVE-2026-75604 (Windows path traversal) — нет. AVIF heap overflow затрагивает все платформы при включённой AVIF-оптимизации.

Моё приложение не использует AVIF — я в безопасности? Если в next.config.js нет строки image/avif в массиве formats, AVIF-вектор для вас закрыт. Но CVE-2026-75604 на Windows по-прежнему актуален, если вы используете оба роутера без Cache Components.

Есть ли готовые PoC-эксплойты? Для AVIF PoC был опубликован исследователями (демонстрирует heap corruption в sanitizer-сборке). Боевых эксплойтов с подтверждённой работой в дикой природе на момент написания публично зафиксировано не было — но это может измениться быстро.

Что делать, если мы не можем обновиться прямо сейчас? Для AVIF — отключите оптимизацию AVIF в конфиге. Для Windows path traversal — рассмотрите WAF-правило. Оба варианта временные: запланируйте обновление на ближайшее окно обслуживания.

Источники

Vercel — August 2026 Security Release | Next.js (официальный блог команды, 25 августа 2026).

The Hacker News — Next.js Patches Critical AVIF and Windows Flaws Enabling Unauthenticated RCE (27 августа 2026).

Vercel Changelog — Vercel applications are protected from Next.js August 2026 security vulnerabilities (25 августа 2026).

Используете Next.js в продакшне?

Поможем провести аудит зависимостей, настроить сканирование уязвимостей в CI/CD и убедиться, что ваши веб-приложения защищены до следующего security-релиза.

Заказать аудит кода
Материал подготовлен редакцией YuSMP Group по открытым источникам. Нужна экспертиза по теме или разработка под задачу — обсудим проект.