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

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

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

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

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

Категории

Все категории
Loading categories
0xMiddleware — CVE-2025-29927: Next.js Middleware Exploit | Kitploit
Инструменты/GitHubGitHub/ev3rpalestine/0xmiddleware
Web Vulnerability ScannersExploitationWeb Application ExploitationWeb SecurityPenetration TestingAuthentication
GitHubev3rpalestine/0xmiddleware

0xMiddleware

CVE-2025-29927: Next.js Middleware Exploit

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

Популярное

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

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

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

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

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

CVE-2025-29927: эксплойт middleware Next.js

Этот инструмент демонстрирует и автоматизирует эксплуатацию CVE-2025-29927 — уязвимости в Next.js, которая позволяет атакующему обходить проверки middleware (например, аутентификацию) путём злоупотребления внутренним заголовком x-middleware-subrequest.

🔧 Как работает эксплойт

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

Устанавливая этот заголовок вручную, логика middleware, отвечающая за обеспечение аутентификации, редиректов, логирования или фильтрации, полностью пропускается.

Что делает этот инструмент:

  • Отправляет базовый запрос (без заголовка)
  • Перебирает несколько payload для x-middleware-subrequest
  • Сравнивает содержимое тела ответа
  • Обнаруживает и сообщает:
    • ✅ Подтверждённый обход: статус 403 становится 200
    • ⚠️ Различие в ответе: статус остаётся прежним, но содержимое отличается (частичный обход или непредусмотренное поведение)
  • Сохраняет результаты в отдельных выходных файлах для дальнейшего анализа

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

  • Next.js 15.x < 15.2.3
  • Next.js 14.x < 14.2.25
  • Next.js 13.x < 13.5.9

Уязвимые цели:

  • Приложения Next.js, размещённые на собственном хостинге и использующие middleware (например, next start с параметром output: standalone)
  • Приложения, в которых middleware используется для аутентификации или обеспечения безопасности и не проверяется повторно во время выполнения

Не уязвимы:

  • Приложения, размещённые на Vercel или Netlify
  • Статический экспорт (next export)

👁️ Эксплойт в действии

Пример обхода middleware:

root@kitploit:~
Normal Request:
  GET /admin --> 403 Forbidden

Request with Header:
  GET /admin --> 200 OK
  x-middleware-subrequest: middleware 

Даже если целевой ресурс проверяет аутентификацию через middleware, это полностью обходит её.


⚙️ Установка и использование

🔥 Клонирование репозитория

root@kitploit:~
git clone https://github.com/0x0Luk/0xMiddleware.git
cd 0xMiddleware

📂 Входные данные

Создайте файл с именем urls.txt с одним URL в строке:

root@kitploit:~
https://target.com/admin
https://target.com/_next/static/asset.js

🚀 Запуск инструмента

root@kitploit:~
python3 0xMiddleware.py urls.txt

⚙️ Что делает инструмент

  • Отправляет запросы на каждый URL с эксплойт-заголовком и без него

  • Использует несколько вариантов payload:

    • middleware
    • pages/_middleware
    • src/middleware
    • (и другие)
  • Результаты:

    • ✅ middleware_exploited.txt: для подтверждённых обходов (403 → 200)
    • ⚠️ middleware_response_diff.txt: когда содержимое ответа отличается

🚨 Исправление / Меры защиты

Немедленно обновите Next.js до безопасной версии:

  • 15.2.3+
  • 14.2.25+
  • 13.5.9+

Также:

  • Убедитесь, что проверка middleware повторно выполняется на сервере (например, через getServerSideProps, JWT, сессии)
  • Очищайте или отклоняйте внешнее использование внутренних заголовков

✨ Пример вывода

root@kitploit:~
[✔] Bypass successful: https://target.com/admin (payload: middleware)
[•] Response difference detected: https://target.com/login (payload: src/middleware)

[✔] Found 3 bypasses > middleware_exploited.txt
[•] Found 5 response diffs > middleware_response_diff.txt

🔗 Ссылки

  • ✨ CVE: https://nextjs.org/blog/cve-2025-29927

Скачать инструмент