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 года после выпуска исправления.
Рекомендации
- Обновите Next.js до версии 14.2.15 или выше
- Проведите аудит журналов доступа на предмет потенциальных признаков эксплуатации
- Рассмотрите возможность внедрения дополнительных уровней авторизации, не зависящих только от middleware Next.js