
Aplicação Next.js deliberadamente vulnerável demonstrando CVE-2025-29927 (bypass de autenticação baseado em middleware) para aprendizado e prática de bug bounty.
Este repositório contém uma aplicação web deliberadamente vulnerável construída usando Next.js. Ela foi projetada para demonstrar e estudar o problema de segurança conhecido como CVE-2025-29927. O objetivo deste projeto é ajudar pesquisadores de segurança, estudantes e caçadores de bug bounty a entender como a vulnerabilidade funciona em um ambiente semelhante ao mundo real.
[!CAUTION ] Este aplicativo é intencionalmente inseguro e nunca deve ser implantado em produção.
CVE-2025-29927 está relacionado ao tratamento inadequado da lógica de requisições em aplicações construídas com Next.js, particularmente no middleware. Isso pode permitir que atacantes:
git clone https://github.com/metasploit403/cve-2025-29927-lab
cd cve-2025-29927-lab
npm install
npm run dev
Algumas rotas são intencionalmente vulneráveis e podem incluir
- /api/admin/secret
- /api/internal/health
- /api/private/data
Esses endpoints simulam recursos restritos que não devem ser acessíveis sem a autorização adequada.
1.Supondo que você clonou o repositório com sucesso
2.Inicie npm run dev
3.Isso executa seu projeto localmente
4.Abra o navegador de sua preferência, por exemplo Chrome, e digite http://localhost:3000
5.Tente acessar qualquer um dos 3 endpoints de API
- /api/admin/secret
- /api/internal/health
- /api/private/data
6.Agora tente com qualquer endpoint
- http://localhost:3000/api/admin/secret
- http://localhost:3000/api/internal/health
- http://localhost:3000/api/private/data
7.Observe que sua requisição é bloqueada, isso porque você não incluiu cookie na sua requisição. Isso significa que o endpoint é protegido pelo middleware. O middleware verifica se sua requisição tem um cookie e, se não tiver, ela é automaticamente bloqueada
8.Agora vamos adicionar cookie to our request. Para isso, abra o DevTools do Chrome (estou usando o navegador Chrome aqui, você pode usar qualquer navegador que preferir)
9.pressione F12 e o DevTools do Chrome abrirá
10.Vá para a aba console
11.na aba console, digite document.cookie="lab-auth=authenticated"
12.Agora atualize a página e observe que você está login
Tenha em mente que o middleware verifica se a requisição contém cookie. Se a requisição tiver cookie, você faz login com sucesso; se não, você é bloqueado. A questão é: COMO podemos contornar a verificação do middleware e fazer login sem fornecer o cookie. Isso é o que o CVE-2025-29927 nos permite fazer
Agora vamos contornar a verificação de autenticação do middleware com o CVE-2025-29927. O truque aqui é apenas adicionar este cabeçalho específico:
x-middleware-subrequest: middleware.
Este cabeçalho deve ser usado internamente apenas pelo framework. Se o adicionarmos, o middleware vai parar de verificar se nossa requisição tem cookie e, agora, qualquer endpoint sensível da sua aplicação fica indefeso
Para explorar isso, vamos usar o cURL.
curl é uma ferramenta de linha de comando usada para enviar requisições ao servidor e obter a resposta de volta
1.Espere 401 sem cookie
curl.exe -i http://localhost:3000/api/admin/secret
observe que o servidor respondeu com o código de status 307 (redirecionamento temporário). Como não há cookie, somos redirecionados para a página inicial/página raiz. Isso significa que não podemos fazer login a menos que forneçamos o cookie.
2.curl.exe -i http://localhost:3000/api/admin/secret -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware"
Agora adicionamos "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware"
Observe que agora temos acesso ao login sem o cookie. Isso é um bypass completo de autenticação
Para corrigir problemas como este em aplicações reais:
Este projeto é apenas para fins educacionais. Não use estas técnicas em sistemas que você não possui ou para os quais não tem permissão explícita para testar.
Sinta-se à vontade para:
Se você achar útil, considere dar uma estrela no repositório.
- Next.js
- Bug Bounty
- Web Security
- CVE-2025-29927
- Middleware Authentication
- Bypass