Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-29927-PoC — Prova de conceito de exploit para CVE-2025-29927, uma bypass de autorização de middleware do Next.js. Inclui um laboratório alvo vulnerável e um script em Python para verificar a bypass enviando cabeçalhos x-middleware-subrequest elaborados. | Kitploit
Ferramentas/GitHubGitHub/ritinify/cve-2025-29927-poc
ExploraçãoExploração de Aplicações WebCTFTestes de PenetraçãoAprendizado e EducaçãoLabs e Prática
GitHubritinify/cve-2025-29927-poc

CVE-2025-29927-PoC

Prova de conceito de exploit para CVE-2025-29927, uma bypass de autorização de middleware do Next.js. Inclui um laboratório alvo vulnerável e um script em Python para verificar a bypass enviando cabeçalhos x-middleware-subrequest elaborados.

Ver Repositório
21há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-29927 — Prova de Conceito (PoC) de Bypass de Autorização no Middleware do Next.js

Um pequeno projeto no GitHub para validar o CVE-2025-29927 (Bypass de Autorização no Middleware do Next.js) em um ambiente de laboratório de autorização local (VMware: máquina alvo Ubuntu + máquina atacante Kali).

⚠️ Aviso Legal: Este projeto destina-se exclusivamente a fins educacionais, CTF e ambientes de laboratório que você possui ou para os quais possui autorização explícita. É estritamente proibido usá-lo em qualquer sistema não autorizado. As consequências do uso indevido deste projeto são de responsabilidade do usuário.


📋 Índice

  • 1. Ficha da Vulnerabilidade
  • 2. Princípio da Vulnerabilidade (Entenda em 30 Segundos)
  • 3. Estrutura do Repositório
  • 4. Topologia do Laboratório (Duas Máquinas Virtuais VMware)
  • 5. Configuração da Máquina Alvo (Ubuntu 24.04)
  • 6. Preparação da Máquina Atacante (Kali)
  • 7. Validação Local (Etapa Principal)
  • 8. Descrição dos Parâmetros do PoC
  • 9. Autoteste Rápido Sem Máquina Alvo (Opcional)
  • 10. Correção e Detecção
  • 11. Perguntas Frequentes (FAQ)
  • 12. Referências

1. Ficha da Vulnerabilidade

ItemConteúdo
CVECVE-2025-29927
Data de Divulgação25/03/2025 (Aviso de Segurança Oficial do Next.js)
Componente AfetadoVercel Next.js (Framework Full-Stack Node.js)
Tipo de VulnerabilidadeBypass de Autorização / Autorização Incorreta (CWE-863)
Versões Afetadas< 12.3.5, < 13.5.9, < 14.2.25, < 15.2.3
Versões Corrigidas12.3.5 / 13.5.9 / 14.2.25 / 15.2.3 ou superiores
Nível de GravidadeCrítica / Alta (pontuação específica conforme página do NVD)

Após a divulgação da vulnerabilidade, muitos painéis administrativos, callbacks de pagamento e APIs internas em ambientes de produção foram contornados. O Metasploit e o ProjectDiscovery Nuclei incluíram módulos de detecção, tornando-se uma das vulnerabilidades de "bypass de autorização em nível de framework" mais representativas de 2025.


2. Princípio da Vulnerabilidade (Entenda em 30 Segundos)

O Next.js permite que a "lógica de autenticação" seja escrita no middleware, por exemplo:

export function middleware(request) {
  if (!isLogin(request)) return NextResponse.redirect("/login"); // Não autenticado → bloqueia
  return NextResponse.next();
}

O problema é que o Next.js internamente depende de um cabeçalho de requisição que o cliente pode forjar para determinar se "esta requisição já passou pelo middleware":

x-middleware-subrequest: middleware

Nas versões afetadas, se uma requisição externa carregar este cabeçalho interno, o Next.js assume erroneamente que o middleware já foi executado, fazendo com que todo o middleware de autenticação seja ignorado. O atacante não precisa de nenhuma conta; basta acessar rotas protegidas como /admin com este cabeçalho para obter um 200 direto — e como a página em si geralmente confia no middleware e não faz uma segunda verificação, o controle de autorização é anulado (erro de limite de confiança).

💡 O valor mais comum usado em explorações públicas é a forma repetida e concatenada do caminho do middleware, por exemplo middleware:middleware:middleware:middleware:middleware; um único middleware pode não funcionar em algumas versões/estruturas de diretórios (testado na versão 14.2.24 deste laboratório). Este PoC testa várias opções de valores em sequência; se qualquer uma funcionar, o bypass é bem-sucedido.


3. Estrutura do Repositório

CVE-2025-29927-PoC/
├── README.md                 # Este documento (explicação da vulnerabilidade + tutorial do laboratório VMware)
├── LICENSE                   # MIT
├── .gitignore
├── exploit.py                # ★ PoC de validação em Python3 apenas com biblioteca padrão (executado no Kali/qualquer máquina)
├── target/                   # ★ Laboratório de vulnerabilidade auto-construído (copie para a máquina alvo Ubuntu)
│   ├── package.json          #   Bloqueia [email protected] (versão afetada)
│   ├── middleware.js         #   Simula o "middleware de autenticação" de produção real
│   ├── pages/
│   │   ├── index.js          #   Página inicial
│   │   ├── login.js          #   Página de login (demonstra o redirecionamento para cá)
│   │   └── admin.js          #   ★ Painel administrativo protegido, lê flag.txt no servidor
│   ├── flag.txt              #   Flag do laboratório: FLAG{...}
│   ├── setup.sh              #   Instala Node 20 + npm install + build com um clique na máquina alvo
│   └── start.sh              #   Escuta em 0.0.0.0:3000 em modo de produção
└── tests/
    └── mock_target.py        #   Máquina alvo simulada sem Node (apenas para autoteste de desenvolvimento)

4. Topologia do Laboratório (Duas Máquinas Virtuais VMware)

┌───────────────────────────────────────────────────────────┐
│ VMware Workstation Pro 17 (Host: Windows)                 │
│ Rede: NAT (VMnet8 padrão), duas VMs no mesmo segmento, ping mútuo │
│                                                           │
│   ┌──────────────────┐        ┌─────────────────────┐     │
│   │ Alvo Ubuntu 24.04 │        │ Atacante Kali Linux │     │
│   │                  │  http   │                     │     │
│   │  Node 20 + Next  │◄───────│  python3 exploit.py  │     │
│   │  14.2.24 :3000   │  GET    │                     │     │
│   └──────────────────┘        └─────────────────────┘     │
│   IP: <TARGET_IP>              IP: <ATTACKER_IP>          │
└───────────────────────────────────────────────────────────┘

4.1 O que você precisa baixar

FinalidadeImagem/SoftwareVersão Recomendada
Software de VirtualizaçãoVMware Workstation Pro 17 (gratuito para uso pessoal)17.x
Imagem da Máquina AlvoISO do Ubuntu Server LTS24.04.x
Máquina AtacanteKali Linux (imagem VMware oficial pré-configurada ou instalação via ISO)2025.x
(Opcional)Host com 8 GB+ de RAM, 50 GB+ de disco—

4.2 Configuração Geral das Máquinas Virtuais

  1. Ambas as VMs devem ter 2 vCPU / 4 GB de RAM / 40 GB de disco;
  2. Adaptador de rede de ambas deve ser NAT (garante comunicação no mesmo segmento); para aprendizado, não é necessário habilitar bridge;
  3. Durante a instalação do Ubuntu, marque OpenSSH server (facilita a cópia de arquivos via SSH do host);
  4. Após instalar o sistema e confirmar a conexão com a internet, tire um snapshot limpo para facilitar a reabertura do laboratório.

5. Configuração da Máquina Alvo (Ubuntu 24.04)

Todos os passos abaixo são executados na máquina alvo Ubuntu.

5.1 Coloque o código do projeto na máquina alvo (escolha uma opção)

# Opção A: Faça push do projeto para seu GitHub e clone (recomendado; use este se for enviar para o GitHub depois)
git clone https://github.com/<seu-usuario>/CVE-2025-29927-PoC.git
cd CVE-2025-29927-PoC

# Opção B: Copie do host via scp
# scp -r CVE-2025-29927-PoC  ubuntu@<TARGET_IP>:~/

5.2 Instale as dependências e construa o aplicativo vulnerável com um clique

cd CVE-2025-29927-PoC/target
sudo bash setup.sh        # Instala Node 20(LTS) + npm install + next build

O que o setup.sh faz internamente: atualiza o apt → instala ferramentas curl/CA/build → instala o Node.js 20 LTS via NodeSource → npm install (baixa dependências como [email protected]) → npm run build.

Baixar ferramenta