CVE-2024-51479

Next.js: Обход авторизации в middleware

Уязвимость в Next.js, позволяющая обойти авторизацию для страниц, находящихся непосредственно в корневом каталоге приложения

Информация об уязвимости

Критичность
HIGH
CVSS Score
7.5
Затронутые продукты
  • Next.js >= 9.5.5, < 14.2.15

Ссылки на исправления

Описание уязвимости

В декабре 2024 года была обнаружена уязвимость в Next.js, связанная с обходом авторизации. Уязвимость затрагивает приложения, использующие Next.js с версии 9.5.5 до 14.2.15, которые выполняют авторизацию в middleware на основе пути (pathname).

Технические детали

Уязвимость позволяет злоумышленнику обойти механизм авторизации для страниц, расположенных непосредственно в корневом каталоге приложения. Например:

  • Не затронуто: https://example.com/ (корневой путь)
  • 🔴 Затронуто: https://example.com/foo (страница первого уровня)
  • Не затронуто: https://example.com/foo/bar (вложенная страница)

Уязвимость получила оценку CVSS v3.1 7.5 (High) с вектором CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N, что указывает на возможность удаленной эксплуатации без необходимости наличия привилегий.

Последствия

Эксплуатация данной уязвимости может привести к:

  • Несанкционированному доступу к защищенным страницам приложения
  • Доступу к конфиденциальной информации
  • Обходу механизмов аутентификации и авторизации

Особую опасность уязвимость представляет из-за широкого распространения Next.js как фреймворка для разработки веб-приложений, с более чем 7.9 миллионами еженедельных загрузок на npm.

Исправление

Уязвимость исправлена в версии Next.js 14.2.15 и более поздних. Пользователям настоятельно рекомендуется обновить свои приложения Next.js до последней версии.

Для приложений, размещенных на платформе Vercel, уязвимость автоматически устранена независимо от используемой версии Next.js.

Обнаружение и раскрытие

Уязвимость была обнаружена исследователем безопасности tyage из компании GMO Cybersecurity by IERAE и ответственно раскрыта команде Next.js. Информация о уязвимости была опубликована 17 декабря 2024 года после выпуска исправления.

Рекомендации

  1. Обновите Next.js до версии 14.2.15 или выше
  2. Проведите аудит журналов доступа на предмет потенциальных признаков эксплуатации
  3. Рассмотрите возможность внедрения дополнительных уровней авторизации, не зависящих только от middleware Next.js