
Демонстрация CVE-2025-29927 для класса по безопасному программированию
Это демонстрация CVE-2025-29927, критической уязвимости в Next.js, которая позволяла обходить промежуточное ПО (middleware) с помощью определённого заголовка.
Заголовок x-middleware-subrequest был предназначен для предотвращения бесконечных циклов middleware. Каждый раз, когда запрос достигает middleware, к этому заголовку добавляется значение middleware, и если оно добавляется 5 раз, то middleware пропускает запрос. Отправка запроса со значением middleware:middleware:middleware:middleware:middleware позволит обойти middleware.
После клонирования репозитория и сборки проекта запустите сервер разработки:
npm run dev
Откройте приложение в браузере по ссылке http://localhost:3000.
Цель этого приложения — попасть на страницу /cool. Кнопка отправки ведёт на эту страницу, но запрос перехватывается middleware и перенаправляется на /uncool.


Теперь мы можем отправить тот же запрос, но с созданным заголовком, и middleware позволит нам перейти на страницу /cool. Это можно сделать с помощью инструментов разработчика браузера.

