
Demonstração do CVE-2025-29927 para aula de programação segura
Esta é uma demonstração da CVE-2025-29927, uma vulnerabilidade crítica no Next.js que permitia ignorar o middleware com um determinado cabeçalho.
O cabeçalho x-middleware-subrequest foi projetado para evitar loops infinitos de middleware. Cada vez que a requisição chega ao middleware, o valor middleware é anexado a este cabeçalho e, se for anexado 5 vezes, o middleware deixa a requisição passar. Enviar uma requisição com o valor middleware:middleware:middleware:middleware:middleware permitirá ignorar o middleware.
Após clonar o repositório e construir o projeto, execute o servidor de desenvolvimento:
npm run dev
Acesse a aplicação no seu navegador usando o link http://localhost:3000.
O objetivo desta aplicação é chegar à página /cool. O botão de envio leva a esta página, mas a requisição é interceptada pelo middleware e redirecionada para /uncool.
Agora podemos enviar a mesma requisição, mas com o cabeçalho forjado, e o middleware nos permitirá passar para a página /cool. Isso pode ser feito com as ferramentas de desenvolvedor do navegador.
