01.05 Позитивные технологии
01.05 Позитивные технологии
01.05 Позитивные технологии

🔥 В Next.js нашли критическую уязвимость для обхода авторизации через HTTP-заголовок

Новости

В Next.js нашли уязвимость CVE-2025-29927, которая позволяет обходить авторизацию через заголовок и получать доступ к закрытым маршрутам

4К открытий31К показов
🔥 В Next.js нашли критическую уязвимость для обхода авторизации через HTTP-заголовок

Исследователи выявили критическую уязвимость в Next.js (CVE-2025-29927), которая позволяет обойти проверки авторизации, реализованные через middleware. Проблема затрагивает версии с 11.1.4 по 15.2.2.

Уязвимость связана с тем, как фреймворк обрабатывает заголовок x-middleware-subrequest. Он задумывался как внутренний механизм защиты от бесконечной рекурсии, но злоумышленник может добавить этот заголовок в обычный запрос и тем самым отключить middleware полностью.

Это позволяет получить доступ к защищенным маршрутам — например, /dashboard/admin — даже без авторизации.

Как это работает

При наличии заголовка x-middleware-subrequest с нужным значением Next.js пропускает выполнение middleware и передает запрос напрямую. Пример:

			X-Middleware-Subrequest: middleware:middleware:middleware

		

Проверка выполняется до любых других ограничений, включая глубину рекурсии и логику аутентификации. В результате авторизационные механизмы полностью игнорируются.

Кто под ударом

Подвержены все приложения, использующие Next.js:

  • версий 11.1.4–13.5.6
  • версий 14.x до 14.2.25
  • версий 15.x до 15.2.3

Развертывания на Vercel уже защищены, но self-hosted инсталляции уязвимы, если не обновлены или не настроены вручную.

Риски и последствия

Эксплуатация уязвимости позволяет:

  • обойти авторизацию и получить доступ к закрытым разделам;
  • обойти заголовки безопасности, например CSP;
  • влиять на кэширование контента, отравляя кэш на стороне CDN.

Для атаки не нужны специальные инструменты — только корректный заголовок в HTTP-запросе.

Как защититься

Решения два:

  1. Обновиться до безопасных версий — 14.2.25 или 15.2.3.
  2. Если обновление невозможно, заблокировать или удалить заголовок x-middleware-subrequest до того, как он попадет в Next.js.

Это можно реализовать на уровне:

  • WAF или балансировщика (например, Cloudflare);
  • web-сервера (Nginx, Apache);
  • Express-сервера, если используется кастомная сборка.
Следите за новыми постами
Следите за новыми постами по любимым темам
4К открытий31К показов