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-2026-27654-PoC — Prova de Conceito e análise técnica para CVE-2026-27654, uma vulnerabilidade de estouro de buffer baseado em heap no módulo HTTP WebDAV do NGINX, incluindo análise de causa raiz, reprodução e mitigação. | Kitploit
Ferramentas/GitHubGitHub/debajyoti0-0/cve-2026-27654-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoDesenvolvimento de PayloadsExploração de Binários
GitHubdebajyoti0-0/cve-2026-27654-poc

CVE-2026-27654-PoC

Prova de Conceito e análise técnica para CVE-2026-27654, uma vulnerabilidade de estouro de buffer baseado em heap no módulo HTTP WebDAV do NGINX, incluindo análise de causa raiz, reprodução e mitigação.

Ver Repositório
116há 3 mesesAinda 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-2026-27654 – PoC de Manipulação de Caminho Alias no Módulo DAV do nginx ngx_http_dav_module

Este repositório fornece um exploit de prova de conceito para CVE‑2026‑27654, uma vulnerabilidade de heap‑overflow no ngx_http_dav_module do nginx. O bug surge de um underflow de tipo size_t ao manipular requisições MOVE/COPY com cabeçalhos Destination especialmente construídos e localizações baseadas em alias.

⚠️ Aviso: Esta ferramenta destina-se exclusivamente a pesquisa e testes de segurança autorizados. Utilize-a apenas contra sistemas que possui ou para os quais tem permissão explícita de teste. Os autores não assumem qualquer responsabilidade por uso indevido.

CVE-2026-27654 Logo

🔥 Visão Geral da Vulnerabilidade

CVE-2026-27654 é um heap-based buffer overflow acionável remotamente no módulo HTTP WebDAV do NGINX, causado por um integer underflow em ngx_http_dav_copy_move_handler() (src/http/modules/ngx_http_dav_module.c). A vulnerabilidade ocorre quando o comprimento do URI de destino é derivado subtraindo o prefixo de localização configurado do caminho do cabeçalho Destination. Como ambos os operandos são do tipo size_t, um caminho de destino mais curto faz com que a subtração envolva para um valor sem sinal próximo do máximo.

O comprimento envolvido é subsequentemente usado como argumento de tamanho para memcpy(), resultando numa escrita fora dos limites no heap que corrompe a memória e faz cair imediatamente o processo worker do NGINX. Um atacante remoto e não autenticado pode acionar esta condição de forma fiável usando uma única requisição MOVE ou COPY especialmente construída, direcionada a uma localização WebDAV mapeada por alias. Embora o processo master do NGINX reinicie automaticamente os workers falhados, requisições repetidas podem manter o serviço num ciclo contínuo de queda de workers, resultando num Denial-of-Service (DoS) persistente.

O AddressSanitizer (ASan) valida a vulnerabilidade com um erro negative-size-param em memcpy(), rastreando o caminho de execução desde ngx_http_dav_copy_move_handler() até ngx_http_core_module.c. A vulnerabilidade afeta NGINX 0.5.13–1.28.2 (stable) e 1.29.0–1.29.6 (mainline) quando compilado com --with-http_dav_module e configurado com a diretiva alias. O problema foi corrigido em NGINX 1.28.3 e 1.29.7 (commit ab4b5b8, PR #1210) através da validação adequada do comprimento do caminho de destino calculado antes das operações de memória.

✨ Funcionalidades

  • Seleção de modo interativo – escolha entre quatro modos de operação em tempo de execução (crash, write‑file, cron‑shell, cron‑cmd) com um menu numerado claro.
  • Gatilho de crash – envia a requisição canônica MOVE/COPY que aciona o underflow de size‑t e derruba o worker vulnerável.
  • Modo write‑file – envia conteúdo arbitrário para qualquer local do sistema de arquivos (requer um ambiente de laboratório com alias gravável).
  • Entrega via cron‑shell – implanta um cron job de reverse‑shell em /etc/cron.d/, com prompts interativos para LHOST/LPORT e um lembrete para iniciar o listener.
  • Entrega via cron‑cmd – executa um comando personalizado via cron; aceita entrada interativa ou a flag --cron-command.
  • Verificação de vulnerabilidade (--check) – modo não interativo que executa o teste de crash e imprime um veredito claro [VULNERABLE] / [NOT VULNERABLE], saindo com código 0 ou 1.
  • Suporte a proxy HTTP (--proxy) – encaminha todas as requisições através de um proxy HTTP/HTTPS (por exemplo, Burp Suite, mitmproxy) para depuração ou inspeção de tráfego.
  • Manipulação inteligente de arquivos – verifica se o arquivo de gatilho já existe (via HEAD/GET) e ignora o PUT se estiver presente, evitando uploads desnecessários.
  • Opções flexíveis de payload – forneça payloads via --payload-file (binário), --payload-text (texto literal) ou use o conteúdo de teste padrão.
  • Argumentos de linha de comando abrangentes – ajuste fino de cada aspecto do exploit: --destination-path, --alias-len, --escape-depth, --method, --location-prefix e mais.
  • Fallback robusto – se a biblioteca requests não estiver instalada, o script recorre ao http.client padrão do Python (o suporte a proxy é desativado no modo de fallback).

📦 Instalação

git clone https://github.com/Debajyoti0-0/CVE-2026-27654-PoC.git
cd CVE-2026-27654-PoC
pip install -r requirements.txt

🚀 Uso

Modo interativo (menu)

python exploit.py --target 192.168.1.100:8080

Você verá um menu numerado e será solicitado a selecionar um modo.

Verificação de vulnerabilidades (não interativa)

python exploit.py --target 192.168.1.100:8080 --check

Isso força o modo crash, executa o exploit e imprime [VULNERABLE] ou [NOT VULNERABLE] antes de sair com o código 0 ou 1.

Com um proxy HTTP

python exploit.py --target 192.168.1.100:8080 --proxy http://127.0.0.1:8080

Todas as requisições HTTP serão enviadas através do proxy especificado (útil para depuração com Burp).

⚙️ Referência de Flags

FlagDescriçãoExemplo
--target HOST:PORTInstância nginx alvo (padrão: 127.0.0.1:8080).--target 10.0.0.5:80
--verbose, -vMostra as respostas HTTP completas (cabeçalhos e corpo).-v
--no-putIgnora o PUT inicial (assume que o arquivo de gatilho já existe). Útil para testes repetidos.--no-put
--location-prefixPrefixo do local DAV (padrão: /uploads/). Deve corresponder ao local alias na configuração do nginx.--location-prefix /dav/
--remote-nameNome do arquivo de origem remoto colocado dentro do local DAV (padrão: triggerfile.txt).--remote-name test.txt
--method {MOVE,COPY}Método DAV a ser usado para a requisição de destino (padrão: MOVE).--method COPY
--destination-pathCaminho URI de destino – usado para a aritmética de crash ou caminho final do arquivo para os modos de entrega.--destination-path /etc/cron.d/backdoor
--alias-lenComprimento da string alias configurada (usado para exibição da aritmética de crash, padrão 13).--alias-len 20
--escape-depthNúmero de componentes de caminho ../ para escapar da raiz DAV (padrão 1).--escape-depth 3
--payload-fileArquivo local a ser enviado como payload. Substitui o conteúdo de teste padrão.--payload-file ./shell.php
--payload-textPayload de texto literal para o modo write-file.--payload-text "<?php phpinfo(); ?>"
--lhostHost de callback do reverse shell (para cron-shell). Se omitido, o script solicita interativamente.--lhost 192.168.1.50
--lportPorta de callback do reverse shell (para cron-shell).--lport 4444
--cron-commandComando a ser executado via cron (para cron-cmd). Se omitido, o script solicita interativamente.--cron-command "rm -rf /tmp/*"
--waitSegundos de espera após a entrega via cron para que a tarefa seja executada (padrão 65).--wait 120
--checkExecuta a verificação de vulnerabilidade (teste de crash, não interativo). Exibe VULNERABLE/NOT VULNERABLE e encerra com código 0/1.--check
--proxy PROXY_URLURL do proxy HTTP/HTTPS (ex.: http://127.0.0.1:8080). Requer a biblioteca requests.--proxy http://127.0.0.1:8080

Nota: A maioria das flags é opcional. O script solicitará os argumentos obrigatórios ausentes (ex.: --lhost/--lport para cron-shell) caso não sejam fornecidos.

🧪 Modos em Detalhe

1. crash

Baixar ferramenta