Чем две критические уязвимости Next.js грозят серверам?

Vercel 25 августа 2026 года выпустила внеплановые исправления двух критических уязвимостей Next.js, способных привести к удалённому выполнению кода без аутентификации. Первая связана с обходом путей на серверах с файловой системой Windows, вторая — с переполнением буфера в куче при обработке AVIF через пакет sharp и библиотеку libheif. Исправления вошли в Next.js 15.5.24 со статусом Maintenance LTS и Next.js 16.3.3 со статусом Active LTS. Материал и общее исследование приписаны Hacktron. По заявлению Vercel, размещённые на её платформе приложения уже защищены и ради устранения именно этих двух проблем обновлять их не требуется.
CVE-2026-75604 получила 9,0 балла по шкале CVSS. Уязвимы версии Next.js с 13.4 по 15.5.23 и с 16.0 по 16.3.2, но лишь при совпадении трёх условий: сервер работает с файловой системой Windows, приложение использует одновременно Pages Router и App Router, а Cache Components отключены. Linux и macOS проблема не затрагивает. Точный способ атаки Vercel не раскрыла, однако потенциальным последствием названо неаутентифицированное удалённое выполнение кода. За ответственное сообщение об ошибке в журнале изменений указаны исследователи evolutionstorm и B0RI.
Обходного решения для уязвимых Windows-серверов нет. Формулировка Vercel недвусмысленна: «Для затронутых приложений, размещённых на Windows, неизвестно ни одного обходного решения. Если ваш сервер работает на Windows, обновитесь немедленно». Нужны Next.js 15.5.24 либо 16.3.3. Компания упомянула установку через npm install в ветках 15.5 и 16.3, но полного текста команд с именем пакета и точной версией не привела. Поэтому полагаться на обычное обновление зависимостей без проверки итоговой версии рискованно: после установки следует убедиться, что проект действительно перешёл на один из двух исправленных выпусков.
Вторая ошибка зарегистрирована для Next.js как GHSA-2xp9-vwfh-vxw4 и оценена в 9,5 балла по CVSS v4. Её источник находится ниже по цепочке зависимостей: Next.js передаёт изображения пакету sharp, sharp использует написанную на C библиотеку libheif, а libheif разбирает AVIF. Базовая уязвимость libheif имеет идентификатор GHSA-g89c-p67h-r497. Для Next.js затронуты версии с 10.0.0 по 15.5.23 и вся линия 16.x до 16.3.2 включительно. У libheif уязвимы все выпуски вплоть до v1.23.1. The Hacker News 27 августа 2026 года проверила страницу релизов GitHub: libheif v1.23.2 к тому времени ещё не была опубликована.
Подготовленный злоумышленником AVIF содержит вложенные ссылки identity-derivation и auxiliary item. Из-за их сочетания libheif создаёт декодированное изображение с двумя записями Alpha разной битовой глубины. Первая запись имеет глубину 8 бит, и масштабировщик выделяет под неё буфер соответствующего размера. Затем вторая запись подаёт 16-битные значения, которые записываются в тот же буфер. Итог — выход за границу выделенной области примерно на 16 384 байта. Это запись за пределами буфера в куче, а не безобидный сбой декодера; при подходящей компоновке памяти она может стать основой удалённого выполнения кода.
Исследователи опубликовали полный пример эксплуатации на Python. Он запускается со сборкой, использующей AddressSanitizer, воспроизводит повреждение кучи и наглядно фиксирует запись за границами буфера. Авторы сообщили: «Нам удалось добиться удалённого выполнения кода с помощью этой уязвимости в нескольких приложениях». Сам опубликованный пример, впрочем, непосредственно доказывает переполнение, а заявленные случаи RCE по состоянию на момент публикации не получили независимого подтверждения. В бюллетене libheif первооткрывателем назван rootxharsh, координатором — KarimPwnz. Журнал Vercel приписывает раскрытие AVIF-ошибки команде Hacktron.
Стандартная конфигурация Next.js в данном сценарии не включает оптимизацию AVIF. Опасность появляется, когда разработчик вручную добавляет image/avif в параметр formats файла next.config.js, после чего сервер начинает обрабатывать подконтрольные пользователю AVIF через уязвимую цепочку. Без такой настройки приложение этой ошибке не подвержено. В Next.js 15.5.24 и 16.3.3 оптимизацию AVIF временно отключили полностью. Это промежуточная мера до выхода исправления libheif и его последующего включения в sharp и Next.js.
Августовские исправления первоначально собирались выпустить 26 августа 2026 года в рамках ежемесячного цикла безопасности, но публикацию перенесли на 25 августа. Причиной стала обнаруженная в сторонней зависимости проблема AVIF/libheif. Josh Story, Karim Rahal и Sebastian Silbermann объяснили решение в блоге Vercel: «Сегодня ранее мы перенесли выпуск на более ранний срок после обнаружения дополнительной уязвимости критической степени в одной из наших вышестоящих зависимостей». Пользователи, самостоятельно управляющие серверами, получили патчи на день раньше; для Windows это особенно существенно, поскольку временной защиты Vercel там нет.
Формальную программу ежемесячных обновлений Vercel анонсировала 13 июля 2026 года. Andrew Imm и Josh Story тогда написали: «Объём исследований уязвимостей во всей отрасли быстро растёт, чему способствует поиск с помощью больших языковых моделей». Первый плановый выпуск состоялся 21 июля 2026 года: Next.js 16.2.11 и 15.5.21 закрыли девять ошибок, относившихся к отказу в обслуживании, подделке серверных запросов и обходу промежуточного ПО. Августовский пакет стал вторым выпуском программы. Установка июльских патчей не защищает от CVE-2026-75604 и GHSA-2xp9-vwfh-vxw4, поэтому Next.js 16.2.11 и 15.5.21 всё равно требуется обновить.
Эти находки продолжают серию серьёзных проблем в экосистеме Next.js и React. В марте 2025 года раскрыли критический обход middleware, позволявший неаутентифицированному атакующему пропускать проверки авторизации в самостоятельно размещённых приложениях. В декабре 2025 года появилась React2Shell: уязвимость десериализации в React Server Components с максимальной оценкой CVSS 10,0. Её начали активно эксплуатировать уже через несколько часов после публичного раскрытия. Для двух августовских ошибок столь быстрого развития событий пока не зафиксировано.
По состоянию на 27 августа 2026 года не было сообщений об эксплуатации ни Windows-ошибки CVE-2026-75604, ни переполнения AVIF/libheif GHSA-2xp9-vwfh-vxw4. The Hacker News запросила комментарий у Vercel, но к публикации ответа не получила. Для самостоятельно размещённых проектов практическое действие одно: перейти на Next.js 15.5.24 или 16.3.3. Windows-серверы с Pages Router, App Router и без Cache Components требуют немедленного обновления; для AVIF-конфигураций временное удаление image/avif снижает риск, хотя патч всё равно нужен. Развёртывания на Vercel, согласно записи компании от 25 августа, защищены от обеих атак на уровне платформы.[/final]


Новое на сайте

Ссылка