
Имитирует CVE-2025-29927 — критическую уязвимость Next.js, позволяющую злоумышленникам обходить авторизацию middleware путём эксплуатации внутреннего HTTP-заголовка x-middleware-subrequest. Демонстрирует несанкционированный доступ к защищённым маршрутам и предоставляет стратегии снижения риска.
Этот репозиторий демонстрирует эксплуатацию CVE-2025-29927 — критической уязвимости в Next.js, позволяющей злоумышленникам обходить проверки авторизации, реализованные в промежуточном ПО. Проблема связана с некорректной обработкой внутреннего HTTP-заголовка x-middleware-subrequest, что даёт несанкционированный доступ к защищённым маршрутам.
Данный проект предназначен исключительно для образовательных и исследовательских целей. Несанкционированное использование против систем без явного разрешения является незаконным и неэтичным. Авторы не несут ответственности за любое неправомерное использование этого кода.
CVE-2025-29927 затрагивает версии Next.js до:
Уязвимость проявляется, когда злоумышленник включает заголовок x-middleware-subrequest в HTTP-запрос. Next.js интерпретирует этот заголовок как внутренний подзапрос, что приводит к пропуску выполнения промежуточного ПО, включая критически важные проверки авторизации.
git clone https://github.com/Knotsecurity/CVE-2025-29927-NextJs-Middleware-Simulation.git
cd cve-2025-29927-simulationnpm installnpm run dev
В приложение включён защищённый маршрут /admin, охраняемый промежуточным ПО, которое проверяет аутентификацию пользователя.
/login и выполните вход с учётными данными [email protected]:password123./admin. Вы получите ошибку отказа в доступе.x-middleware-subrequest: middleware, затем отправьте запрос./admin.Чтобы защититься от этой уязвимости:
npm install next@latestx-middleware-subrequest.