КИБЕРБЕЗОПАСНОСТЬ

Vercel закрыла две критические RCE-дыры в Next.js

Vercel 25 августа 2026 года выпустила патчи для двух критических RCE-уязвимостей в Next.js, одна из них затрагивает AVIF, другая — Windows.

✍️ Редакция iTech News | 28.08.2026 | ⏱ 5 мин | Источник: The Hacker News
🔐

Vercel выпустила патчи для двух критических RCE-уязвимостей в Next.js, обе допускают удалённое выполнение кода без аутентификации. Для команд, которые держат self-hosted инсталляции на Windows или включали AVIF-оптимизацию картинок, это не академическая история из чейнджлога, а прямой повод срочно обновиться: уязвимости Next.js закрыты только в версиях 15.5.24 и 16.3.3.

О проблеме сообщает The Hacker News. Первый баг получил идентификатор CVE-2026-75604 и оценку 9.0 по CVSS: это path traversal в Windows-хостингах, который затрагивает приложения на Next.js с Pages Router и App Router без Cache Components. Linux и macOS под этот сценарий не попадают, но для Windows ситуация жёстче: Vercel прямо заявила, что обходного пути нет и обновляться нужно немедленно. Уязвимыми названы ветки с 13.4 по 15.5.23 и с 16.0 по 16.3.2.

Исправления вышли 25 августа 2026 года в двух релизах: 15.5.24 для Maintenance LTS и 16.3.3 для Active LTS. Обновление выглядит тривиально, но игнорировать его сложно: достаточно `npm install next@15.5.24` или `npm install next@16.3.3`, а вот если приложение крутится на Windows-сервере и осталось на старой версии, Vercel не обещает никакой безопасной временной конфигурации. При этом проекты, размещённые на самой платформе Vercel, по словам компании, уже защищены и ручного апгрейда не требуют.

Вторая история ещё интереснее и неприятнее для тех, кто любит aggressive image optimization. Next.js использует пакет sharp, а тот опирается на библиотеку libheif для разбора AVIF. Именно в libheif обнаружили критическое переполнение буфера в куче, которое может привести к RCE, если сервер обрабатывает специально подготовленный AVIF-файл. Для этой цепочки в advisory фигурирует CVSS v4: 9.5, а диапазон затронутых версий шире: от Next.js 10.0.0 до 15.5.23, плюс все релизы 16.x до 16.3.2.

Техническая механика тут из разряда «картинка оказалась не просто картинкой». Специально собранный AVIF с вложенными ссылками identity-derivation и auxiliary items заставляет libheif собрать декодированное изображение с двумя Alpha plane разной битности. Дальше масштабатор выделяет буфер под первый, 8-битный слой, а затем записывает туда 16-битные значения из второго. На выходе получается запись примерно на 16 384 байта за пределами выделенной области. Исследователи rootxharsh и KarimPwnz опубликовали Python proof-of-concept, который воспроизводит heap corruption в сборке с address sanitizer. Они также заявили, что смогли добиться RCE на нескольких приложениях, но независимого подтверждения именно этой части на момент публикации не было.

Есть важная оговорка, которая может спасти часть инсталляций от лишней паники. AVIF-ветка не включается автоматически во всех проектах: уязвимость эксплуатируема, только если сайт явно добавил `image/avif` в конфигурацию `formats` внутри `next.config.js`. Если такого параметра нет, этот конкретный сценарий не работает. Но Vercel решила не играть в полутона и в патчах просто отключила AVIF-оптимизацию целиком, пока upstream-фикс не доедет из libheif. По состоянию на 27 августа 2026 года версия libheif 1.23.2, которая должна закрыть первопричину, ещё не была опубликована.

Отдельно показательно, как именно вышел августовский пакет исправлений. Изначально Vercel планировала релиз на 26 августа в рамках своей ежемесячной security-программы, но перенесла публикацию на день раньше после того, как обнаружила ещё одну критическую проблему в одной из upstream-зависимостей. Для самой компании это уже второй выпуск по формализованному циклу: программу ежемесячных security-обновлений она анонсировала 13 июля 2026 года, сославшись на резко выросший поток исследований уязвимостей, который подогревается в том числе LLM-assisted discovery. Иными словами, индустрия вошла в фазу, где фреймворк без регулярного security cadence выглядит слегка безответственно.

У Next.js на этом фоне складывается не самый уютный трек-рекорд. В июле 2026 года Vercel уже закрывала девять уязвимостей в версиях 16.2.11 и 15.5.21, включая denial-of-service, SSRF и обход middleware. В марте 2025-го всплывал критический баг в middleware, который позволял неавторизованному атакующему обходить проверки авторизации в self-hosted развёртываниях. А в декабре 2025 года нашумела десериализационная уязвимость React2Shell в React Server Components с CVSS 10.0, которую начали эксплуатировать буквально через часы после публичного раскрытия. На этом фоне августовские уязвимости Next.js выглядят не как случайный сбой, а как продолжение неприятного тренда: чем глубже фреймворк встраивает обработку контента, маршрутизацию и серверную магию, тем шире поверхность атаки.

Для разработчиков и IT-руководителей вывод довольно приземлённый. Если у вас self-hosted Next.js на Windows, обновление стоит ставить в приоритет выше обычного планового спринта. Если используется AVIF, нужно не только обновить Next.js, но и проверить, где именно в продукте разрешена загрузка или проксирование пользовательских изображений, особенно если цепочка идёт через `sharp` и автоматическую оптимизацию. Для бизнеса это ещё один аргумент в пользу инвентаризации не только прямых зависимостей, но и транзитивных C/C++ библиотек, которые спокойно живут под капотом JavaScript-стека и напоминают о себе в самый неудобный момент.

Пока Vercel говорит, что на 27 августа 2026 года сведений о реальной эксплуатации этих двух дыр не было. Но такие окна обычно измеряются не неделями, а скоростью, с которой PoC разлетается по чужим репозиториям и тестовым стендам. Вопрос уже не в том, будут ли команды внимательнее смотреть на уязвимости Next.js и их upstream-зависимости, а в том, насколько быстро рынок привыкнет считать обработку медиа и платформенную «удобную магию» такой же критичной зоной риска, как auth, middleware и SSR. Источник: The Hacker News.

Поделиться: Telegram X LinkedIn