Критические уязвимости Next.js в августе 2026: что обновить
25 августа 2026 года команда Next.js выпустила версии 15.5.24 и 16.3.3, которые закрывают две критические уязвимости удаленного выполнения кода без аутентификации. Релиз вышел на день раньше первоначального плана после обнаружения второй проблемы.
Обновление особенно важно для self-hosted проектов, которые используют встроенную оптимизацию изображений Next.js или работают на Windows-сервере. Но проверять нужно любой production-проект на уязвимой версии: условия у двух проблем разные, а отсутствие Windows не исключает риск при обработке AVIF.
Короткий ответ: Next.js 15 нужно обновить минимум до
15.5.24, Next.js 16 - минимум до16.3.3. Для Next.js 14 и более старых веток отдельного исправленного релиза в августовском advisory нет: если версия входит в затронутый диапазон, потребуется контролируемый переход на поддерживаемую ветку. После обновления обязательно пересоберите и заново разверните приложение.
Что произошло 25 августа 2026 года
Первоначально Next.js анонсировал на 26 августа исправление одной критической уязвимости. После обнаружения дополнительной проблемы релиз перенесли на 25 августа и опубликовали два security advisory.
| Уязвимость | Условия риска | Затронутые версии | Исправлено в |
|---|---|---|---|
RCE при обработке AVIF, GHSA-2xp9-vwfh-vxw4 |
Next.js Image Optimization обрабатывает контролируемое атакующим AVIF-изображение | >=10.0.0 <15.5.24, а также версии 16 ниже 16.3.3 |
15.5.24, 16.3.3 |
RCE на Windows, CVE-2026-75604 / GHSA-p293-qw3h-jr36 |
Windows-файловая система, совместное использование Pages Router и App Router без Cache Components | >=13.4 <15.5.24, >=16.0 <16.3.3 |
15.5.24, 16.3.3 |
Обе проблемы допускают атаку без авторизации, но наличие уязвимой версии еще не описывает фактическую экспозицию конкретного проекта. Для оценки риска нужно проверить способ размещения, конфигурацию роутеров, обработку изображений и источники входных данных.
Уязвимость AVIF Image Optimization
Первая проблема находится в библиотеке libheif, которую использует sharp, а Next.js применяет sharp во встроенном Image Optimization API. Специально подготовленный AVIF-файл может привести к выполнению кода на сервере во время оптимизации изображения.
В advisory указана критическая оценка 9,5 по CVSS 4.0. Уязвимость важна не только для сайтов, которые явно публикуют .avif в репозитории. Опасный сценарий возникает, когда серверный оптимизатор может получить и обработать изображение, контролируемое внешним пользователем или сторонним источником.
Проверьте:
- используется ли компонент
next/imageна страницах с пользовательским контентом; - разрешены ли внешние источники через
images.remotePatternsили старыйimages.domains; - могут ли пользователи, поставщики или интеграции менять URL изображения;
- есть ли загрузка изображений в CMS, личном кабинете, каталоге или маркетплейсе;
- проходят ли AVIF-файлы через
/_next/imageна собственном сервере; - не проксируется ли внешний URL в оптимизатор через API или кастомный loader.
Исправленные версии временно отключают оптимизацию AVIF, пока upstream-исправление не пройдет по цепочке зависимостей. Это может изменить размер и способ отдачи AVIF, поэтому после патча нужно проверить не только безопасность, но и фактическую загрузку изображений и показатели производительности.
Не пытайтесь заменить обновление только запретом расширения .avif в форме. MIME-тип, содержимое файла и путь обработки могут не совпадать с расширением. Официальный патч остается основным способом закрыть проблему.
RCE на Windows-серверах
Вторая уязвимость получила идентификатор CVE-2026-75604. Она относится к приложениям, которые одновременно используют Pages Router и App Router, работают без Cache Components и размещены на файловой системе Windows.
По официальному advisory Linux и macOS не затронуты именно этой проблемой. Это не делает старую версию Next.js безопасной в целом: отдельно остается AVIF-уязвимость.
Проверьте проект по четырем условиям:
- Production-процесс Next.js действительно запущен на Windows, а не только собирается на Windows-машине.
- В проекте одновременно существуют каталоги
pagesиappс рабочими маршрутами. - Используется уязвимая версия Next.js.
- Cache Components не включены.
Для затронутых Windows-приложений известного workaround нет. Нельзя считать перенос за reverse proxy или дополнительное правило WAF полноценной заменой патча. Приоритетное действие - обновить зависимость и развернуть новую сборку.
Как быстро определить версию и условия риска
Начните с фактической версии в каждом production-репозитории:
npm ls nextДля pnpm и Yarn:
pnpm list next
yarn why nextПроверить версию непосредственно из установленного пакета можно так:
node -p "require('next/package.json').version"Не ограничивайтесь диапазоном в package.json. Строка вроде ^15.5.0 не доказывает, что production уже использует 15.5.24. Сверьте lock-файл, последний build-артефакт и журнал развертывания.
Затем проверьте конфигурацию и структуру проекта:
git ls-files "app/**" "pages/**" "src/app/**" "src/pages/**"rg "remotePatterns|images\.domains|image/avif|cacheComponents" next.config.* src app pagesЕсли rg не установлен, используйте поиск IDE или штатные средства своей системы. Отсутствие найденной строки image/avif не отменяет обновление: важен весь путь обработки входного изображения.
Как обновить Next.js до исправленной версии
Обновление выполняйте через репозиторий и обычный CI/CD, а не командой на production-сервере.
Next.js 16
npm install next@16.3.3Next.js 15
npm install next@15.5.24Эквивалент для pnpm:
pnpm add next@16.3.3И для Yarn:
yarn add next@16.3.3После установки проверьте diff package.json и lock-файла. Security-патч не стоит смешивать с массовым обновлением React, Node.js и десятков несвязанных зависимостей: небольшой и понятный diff проще проверить и откатить.
Воспроизводимая последовательность для проекта с npm:
npm ci
npm run lint
npm test
npm run buildЗапускайте только скрипты, реально определенные в проекте. Если автоматических тестов мало, дополните их ручной проверкой критичных пользовательских сценариев.
Что делать с Next.js 14 и более ранними версиями
Августовский релиз предоставляет исправления для поддерживаемых веток 15.5 и 16.3. При этом AVIF-advisory включает версии начиная с Next.js 10, а Windows-advisory - начиная с 13.4 при выполнении остальных условий.
Для legacy-проекта порядок действий такой:
- Зафиксировать точную версию, ОС production и способ обработки изображений.
- Сопоставить конфигурацию с обоими advisory, а не только с номером CVE.
- Проверить официальный список исправленных версий: отдельного патча для 14.x в этом релизе нет.
- Подготовить переход на 15.5.24 или 16.3.3 по официальному upgrade guide.
- Выполнить миграцию на staging и проверить несовместимости до production-деплоя.
Переход с 14-й ветки на 15-ю или 16-ю - это не обычная замена patch-версии. Такой релиз может затронуть поведение кеша, маршрутизацию, React и сборку, поэтому нужен отдельный план отката.
Что проверить после обновления
Успешная команда next build еще не означает, что сайт работает корректно. Проведите smoke-тест в окружении, максимально близком к production.
| Область | Что проверить |
|---|---|
| Изображения | локальные и внешние изображения, AVIF, WebP, /_next/image, ошибки sharp, размеры файлов |
| Роутинг | маршруты из pages и app, динамические страницы, middleware, редиректы |
| Бизнес-сценарии | вход, формы, заявка, корзина, заказ, оплата, личный кабинет |
| API | Route Handlers, API Routes, Server Actions, webhooks и внешние интеграции |
| SEO | server-rendered HTML, canonical, robots, sitemap, коды ответов и метаданные |
| Наблюдаемость | 4xx/5xx, latency, логи Node.js, ошибки оптимизатора и потребление памяти |
Особое внимание уделите изображениям. Исправленные версии отключают оптимизацию AVIF, поэтому сравните Core Web Vitals и объем передаваемых файлов до и после релиза. Безопасность важнее временного ухудшения размера изображения, но проблему производительности нужно увидеть и запланировать, а не обнаружить через падение конверсии.
После первого развертывания наблюдайте за ошибками и ключевыми действиями пользователей. Предыдущий рабочий артефакт сохраняйте до окончания периода контроля.
Почему WAF и CDN не заменяют патч
Обе августовские проблемы возникают внутри серверной обработки Next.js или ее зависимостей. Внешняя фильтрация может уменьшать поверхность атаки, но не подтверждает устранение уязвимого кода.
Для Windows-проблемы официальный advisory прямо говорит об отсутствии известного workaround. Для AVIF исправленные версии меняют поведение оптимизатора. Поэтому безопасная стратегия состоит из обновления зависимости, новой сборки и проверки production, а не из одного правила на периметре.
Если проект размещен на управляемой платформе, проверьте ее официальный security notice для конкретного релиза. При этом версия Next.js в репозитории и следующая сборка все равно должны быть понятны команде.
Приоритет действий для бизнеса
Если у компании несколько сайтов и приложений, сначала обновляйте публичные системы, которые:
- принимают пользовательские изображения или показывают контент из внешней CMS;
- работают на self-hosted Next.js;
- размещены на Windows;
- содержат личный кабинет, оплату, персональные данные или административный интерфейс;
- используют неподдерживаемую ветку Next.js;
- не имеют проверенного процесса отката.
Для разового патча достаточно контролируемого security-релиза. Если инвентаризации нет, старые проекты не собираются, а обновление зависимости регулярно ломает production, проблема уже относится к сопровождению архитектуры. В таком случае полезен аудит и развитие высоконагруженного backend или техническая оценка проекта на странице разработки на Next.js.
Практический пример миграции действующего магазина можно посмотреть в кейсе Автопилот78: Next.js, SEO и кастомная админка. Там перенос технологической платформы выполнялся вместе с сохранением каталога, пользовательских сценариев и поисковой структуры.
Бесплатный SEO-аудит вашего сайта
Оставьте заявку, и наши специалисты найдут точки роста поискового трафика.
FAQ
Какие версии Next.js нужно установить после августовского релиза?
Для ветки 15 нужна версия не ниже 15.5.24, для ветки 16 - не ниже 16.3.3. Именно эти версии указаны как исправленные в официальных advisory от 25 августа 2026 года.
Уязвим ли Next.js на Linux?
Windows-уязвимость CVE-2026-75604 не затрагивает Linux и macOS. Но AVIF Image Optimization RCE не ограничена Windows, поэтому Linux-проект на затронутой версии тоже нужно проверить и обновить.
Безопасен ли проект, если мы не включали AVIF в next.config.js?
По одной настройке это утверждать нельзя. Проверьте весь путь изображений: next/image, внешние источники, пользовательские загрузки, CMS и запросы к /_next/image. Независимо от результата официальный патч остается рекомендуемым действием для уязвимой версии.
Нужно ли обновляться, если сайт размещен на Vercel или другой платформе?
Сначала прочитайте официальный notice своего провайдера: управляемая платформа может применять дополнительные меры. Но не переносите вывод между разными хостингами и не оставляйте уязвимую зависимость без контроля. Следующая production-сборка должна использовать исправленную версию.
Можно ли просто отключить Image Optimization?
Это может уменьшить конкретную поверхность атаки, но не заменяет обновление и не закрывает Windows-уязвимость. Для затронутых Windows-приложений официальный advisory не предлагает workaround.
Что делать, если проект остается на Next.js 14?
Определите, входит ли конфигурация в затронутый сценарий, и подготовьте переход на поддерживаемую ветку. В августовском релизе отдельной исправленной версии 14.x нет, а major-миграцию нужно проверять на staging.
Достаточно ли обновить package.json?
Нет. Нужно обновить lock-файл, пересобрать приложение, развернуть новый артефакт и убедиться, что production действительно работает на исправленной версии.
