Критическая уязвимость в Next.js middleware потрясла экосистему
В Next.js — самом популярном мета-фреймворке для React с десятками тысяч production-инсталляций — обнаружена критическая уязвимость в слое middleware. Проблема позволяет обходить проверки аутентификации и авторизации, что ставит под угрозу данные пользователей в реальных приложениях.
Почему это серьёзно
Next.js эволюционировал из инструмента для серверного рендеринга в полноценный full-stack фреймворк. Middleware — слой, через который проходят все входящие запросы — теперь нередко выполняет функции, которые раньше жили исключительно на бэкенде: проверка JWT-токенов, управление сессиями, контроль доступа к API-эндпоинтам.
Уязвимость позволяла сконструировать запрос, который обходил middleware-проверки и попадал напрямую к защищённым ресурсам. Для приложений, где middleware — единственный барьер между анонимным пользователем и конфиденциальными данными, это означало полный обход защиты.
Системная проблема
Патч выпущен оперативно, но инцидент обнажил более глубокую проблему: фронтенд-фреймворки берут на себя серверные обязанности, но стандарты безопасности для них остаются на уровне «клиентского» кода. Аудиты безопасности, пентесты, формальная верификация — всё это обязательно для серверного ПО, но редко применяется к мета-фреймворкам.
Когда Server Actions в Next.js имеют прямой доступ к базе данных, а middleware управляет авторизацией, баг в этом коде — не «проблема интерфейса», а брешь в бэкенде. Индустрия пока не адаптировала стандарты безопасности к этой новой реальности.


