Суть проблемы
В next.js обнаружили критичный баг, позволяющий обходить middleware-проверки. уязвимость связана с обработкой заголовка x-middleware-subrequest, который фреймворк использует для внутренней маршрутизации. Если добавляnm этот заголовок вручную система воспринимает запрос как внутренний и пропускает security-логику
Технические детали
уязвимость затрагивает версии 11.1.4–15.2.2. Оценка CVSS 3.1 — 9.1 (критично). проблема в том, что next.js не проверяет валидность источника заголовка. достаточно простого HTTP-запроса:
GET /protected-route HTTP/1.1
Host: target.com
x-middleware-subrequest: bypass
next.js использует систему middleware для обработки запросов перед их попаданием в обработчики маршрутов. внутренний механизм маршрутизации применяет служебный заголовок x-middleware-subrequest для предотвращения рекурсивных вызовов middleware, оптимизации внутренних запросов и управления конвейером обработки
проблема возникает из-за отсутствия проверки происхождения заголовка недостаточной документации внутренних механизмов
Пример эксплотации:
Лог сетевых запросов - видно 307 редирект с /admin на /login (типичное поведение при отсутствии доступа).
Настройка запроса - готовим HTTP-запрос с добавлением x-middleware-subrequest для обхода защиты.
Успешный ответ сервера (200 OK) после добавления заголовка - подтверждение уязвимости.
Контент админки, который теперь доступен благодаря эксплоиту -видим интерфейс управления пользователями.
В next.js обнаружили критичный баг, позволяющий обходить middleware-проверки. уязвимость связана с обработкой заголовка x-middleware-subrequest, который фреймворк использует для внутренней маршрутизации. Если добавляnm этот заголовок вручную система воспринимает запрос как внутренний и пропускает security-логику
Технические детали
уязвимость затрагивает версии 11.1.4–15.2.2. Оценка CVSS 3.1 — 9.1 (критично). проблема в том, что next.js не проверяет валидность источника заголовка. достаточно простого HTTP-запроса:
GET /protected-route HTTP/1.1
Host: target.com
x-middleware-subrequest: bypass
next.js использует систему middleware для обработки запросов перед их попаданием в обработчики маршрутов. внутренний механизм маршрутизации применяет служебный заголовок x-middleware-subrequest для предотвращения рекурсивных вызовов middleware, оптимизации внутренних запросов и управления конвейером обработки
проблема возникает из-за отсутствия проверки происхождения заголовка недостаточной документации внутренних механизмов
Пример эксплотации:
Не удалось прогрузить медиа
Лог сетевых запросов - видно 307 редирект с /admin на /login (типичное поведение при отсутствии доступа).
Не удалось прогрузить медиа
Настройка запроса - готовим HTTP-запрос с добавлением x-middleware-subrequest для обхода защиты.
Не удалось прогрузить медиа
Не удалось прогрузить медиа
Успешный ответ сервера (200 OK) после добавления заголовка - подтверждение уязвимости.
Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен:
forum.LIMB.ccРазрешённые домены
imgur.comru.imgbb.comprnt.scimgbb.comibb.coi.imgur.comi.ibb.codarklimb.vipi.pinimg.comimg3.teletype.inimg4.teletype.inteletype.inpikabu.rucs15.pikabu.ruimg2.teletype.inlh7-rt.googleusercontent.comduty-files.ccblogger.googleusercontent.com
Не удалось прогрузить медиа
Контент админки, который теперь доступен благодаря эксплоиту -видим интерфейс управления пользователями.
👍7
💯1
LIMB