Next.js: июльский патч безопасности 2026 — 9 CVE
20 июля 2026 года команда Next.js выпустила первый в истории фреймворка плановый, заранее анонсированный релиз безопасности: девять уязвимостей закрыты одним пакетом — четыре высокой и пять средней степени серьёзности — в обеих поддерживаемых ветках, 16.2 и 15.5. Новость не только в самих CVE, но и в процессе: неделей раньше (13 июля) Vercel объявила о переходе Next.js на ежемесячную программу релизов безопасности с предварительным уведомлением — по модели, давно принятой в Django, Node.js и OpenSSL.
Проблема: внезапные патчи и гонка с атакующими
Каждый, кто держит Next.js в продакшене, знает этот сценарий: патч безопасности выходит без предупреждения, и вечер команды превращается в аврал из обновлений и аудита. За последние полтора года это случилось дважды и болезненно: обход middleware в марте 2025-го (CVE-2025-29927, CVSS 9.1), затем React2Shell в декабре 2025-го — идеальные 10.0 в React Server Components.
Давление только растёт. Объём исследований уязвимостей во всей индустрии резко увеличился благодаря LLM-инструментам: одна только Mozilla раскрыла 271 проблему в одном релизе Firefox — все найдены инструментами Anthropic. ИИ не заменил исследователей безопасности, а умножил их возможности — и то же уравнение работает для атакующих. Vercel запускает инструменты того же класса против самого Next.js — через собственный проект deepsec и расширенную bug-bounty-программу.
Что изменилось
- Предсказуемый ежемесячный график: анонс в блоге Next.js с ожидаемыми сроками и максимальной прогнозируемой серьёзностью. Для уязвимостей, уже эксплуатируемых в дикой природе, остаются внеплановые патчи.
- Координация с платформами: запас времени позволяет хостинг-провайдерам развернуть митигации вроде WAF-правил до того, как все приложения обновятся.
Главные уязвимости релиза:
- CVE-2026-64641 (высокая): отказ в обслуживании через Server Actions в App Router за счёт исчерпания CPU.
- CVE-2026-64642 (высокая): обход middleware/прокси в приложениях, собранных Turbopack с единственной локалью в
i18n, — любая проверка аутентификации в middleware пропускается полностью. - CVE-2026-64645 (высокая): SSRF в
rewrites(), когда хост назначения строится из данных запроса. - CVE-2026-64649 (высокая): SSRF через Server Actions на кастомных серверах.
Практическая часть
Сначала обновление:
npm install next@16.2.11 # Active LTS
npm install next@15.5.21 # Maintenance LTSЗатем главный урок повторяющихся обходов middleware: middleware — слой оптимизации, а не единственная линия обороны. Проверка сессии должна жить в самом слое доступа к данным:
// lib/dal.ts
import 'server-only'
import { verifySession } from './session'
export async function getOrders() {
const session = await verifySession()
if (!session) throw new Error('unauthorized')
return db.orders.findMany({
where: { userId: session.userId },
})
}При таком паттерне даже обход middleware (как в CVE-2026-64642) не даст атакующему без валидной сессии добраться до данных.
Оговорки из реальной практики
- Self-hosted-развёртывания уязвимее. Приложения на хостинге Vercel получили автоматическую WAF-защиту во время React2Shell, а те, кто хостится сам, несут всё окно между раскрытием и патчем целиком. Ежемесячный график сокращает это окно, но не убирает его.
- Интернет-магазин на App Router с Server Actions? Исправления DoS и SSRF касаются вас напрямую — это обновление не косметика.
- Фиксируйте зависимости lockfile-ом и автоматизируйте оповещения (Renovate или Dependabot), чтобы ежемесячный день патчей стал короткой рутиной, а не проектом.
- Это то же уравнение, что и в статье об аутентификации MCP-агентов: чем мощнее интеллектуальные системы, тем больше безопасность — непрерывный процесс, а не событие.
Вывод
Next.js перешёл от реактивных патчей к планируемому ритму безопасности — прямой ответ эпохе, когда ИИ умножает скорость поиска уязвимостей. Практический шаг на сегодня: обновиться до 16.2.11 или 15.5.21 и убедиться, что аутентификация не держится на одном middleware.
Первоисточник: July 2026 Security Release — блог Next.js