
Эксплойт Proof-of-concept для CVE-2025-29927, который добавляет x-middleware-subrequest для обхода проверок аутентификации промежуточного ПО Next.js.
Этот репозиторий содержит доказательство концепции уязвимости CVE-2025-29927 в Next.js, где внутренний заголовок x-middleware-subrequest может быть использован для обхода проверок промежуточного ПО, таких как аутентификация.
🧪 Этот проект был протестирован с Next.js v13.4.19.
git clone https://github.com/goncalocsousa1/CVE-2025-29927.git
cd CVE-2025-29927
npm install
npm run dev
http://localhost:3000
Приложение демонстрирует простую систему аутентификации с защищённым маршрутом, который можно обойти с помощью уязвимости CVE-2025-29927. Вот как это работает:
Главная страница (/)
auth-token)Защищённая страница (/protected)
auth-tokenЗащита промежуточного ПО
auth-token/protected/*, происходит перенаправление на главную страницуДемонстрация уязвимости
x-middleware-subrequestauth-token злоумышленники могут получить доступ к защищённым маршрутамЭто приложение включает защищённый маршрут /protected, который обычно требует аутентификации. Однако, используя заголовок x-middleware-subrequest: middleware в запросе, например curl -H "x-middleware-subrequest: middleware" http://localhost:3000/protected, можно обойти проверку аутентификации.
Вы также можете воспроизвести это поведение с помощью Burp Suite, перехватив запрос и вручную добавив заголовок.
Чтобы попробовать это в Burp Suite, откройте вкладку Proxy и перейдите на подвкладку Intercept. Убедитесь, что Intercept is On, затем нажмите Open Browser и перейдите по защищённому маршруту: http://localhost:3000/protected

Burp Suite перехватит запрос к защищённому маршруту. Затем добавьте следующий заголовок: x-middleware-subrequest: middleware (выделено на скриншоте выше). Наконец, перешлите запрос и получите доступ к защищённому маршруту.

Обновитесь до одной из следующих исправленных версий: