
Exploit de prova de conceito para CVE-2025-29927, uma vulnerabilidade de bypass do middleware Next.js. Inclui fingerprinting de versão, manipulação configurável de cabeçalhos e heurísticas de detecção de sucesso para testar bypass de autenticação.
Este repositório contém uma prova de conceito (PoC) para a CVE-2025-29927, uma vulnerabilidade no middleware do Next.js que permite contornar verificações de autenticação e autorização por meio de manipulação de cabeçalhos.
Versões Afetadas: >= 11.1.4, <= 13.5.6, > 14.0.0, < 14.2.25, > 15.0.0, < 15.2.3 ID CVE: CVE-2025-29927 Gravidade: Alta (CVSS: 9.1)
A vulnerabilidade existe na execução da cadeia de middleware no Next.js, onde um atacante pode manipular o cabeçalho x-middleware-subrequest para contornar os controles de segurança do middleware. Ao criar um valor de cabeçalho específico, o middleware pode ser enganado para tratar a solicitação como se já tivesse sido processada, contornando efetivamente as verificações de autenticação.
Esta ferramenta foi testada em: Next.js 15.0.0 até 15.2.2, outras versões podem exigir modificações.
Instale as dependências com:
pip install -r requirements.txt
python poc-cve-2025-29927.py http://exemplo.com/rota-protegida
usage: poc-cve-2025-29927.py [-h] [-r REPEAT] [-o OUTPUT] [--no-browser] [-f] url
PoC para CVE-2025-29927 - Bypass de Middleware do Next.js
argumentos posicionais:
url URL alvo para testar (ex.: http://localhost:3000/admin/dashboard)
opções:
-h, --help mostra esta mensagem de ajuda e sai
-r REPEAT, --repeat REPEAT
Número de repetições do middleware no cabeçalho (padrão: 5)
-o OUTPUT, --output OUTPUT
Nome do arquivo de saída (padrão: response.html)
--no-browser Não abrir o resultado no navegador
-f, --force Ignorar verificação de versão e forçar tentativa de exploração
python poc-cve-2025-29927.py http://localhost:3000/admin/dashboard
python poc-cve-2025-29927.py http://site-alvo.com/admin/dashboard -f
python poc-cve-2025-29927.py http://app-vulneravel.com/pagina-protegida -r 10 -o resultado.html --no-browser
O script primeiro tenta identificar a versão do Next.js da aplicação alvo usando vários métodos de detecção
Se uma versão vulnerável for detectada (15.0.0-15.2.2), ele prossegue com a exploração
Uma solicitação é enviada com um cabeçalho x-middleware-subrequest especialmente criado
A resposta é salva em um arquivo e analisada em busca de indicadores de sucesso
Se bem-sucedido, o conteúdo protegido ficará acessível sem autenticação
Se você estiver executando uma versão vulnerável do Next.js, atualize para a versão 15.2.3 ou superior para corrigir essa vulnerabilidade.
Esta ferramenta é fornecida apenas para fins educacionais e de pesquisa em segurança. Use-a apenas contra aplicações que você possui ou para as quais tem permissão explícita para testar. Testes não autorizados podem violar leis aplicáveis.
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
Heimd411
Pesquisador de Segurança
Perfil no GitHub
Este Repositório