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-42945-nginx-rift-poc — PoC para CVE-2026-42945 (nginx Rift) — estouro de buffer no heap em ngx_http_rewrite_module. Inclui modos de detecção/sondagem/exploração, laboratório Docker de duas fixtures, descoberta empírica de endereços e varredura de offsets verificada por OOB. Divulgação original por depthfirst. | Kitploit
Ferramentas/GitHubGitHub/f2u0a0d3/cve-2026-42945-nginx-rift-poc
Análise Dinâmica (Sandboxing)Frameworks de ExploraçãoAnálise de VulnerabilidadesExploração de Aplicações WebFuzzingTestes de PenetraçãoAprendizado e EducaçãoExploração de BináriosLabs e Prática

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 →
GitHubf2u0a0d3/cve-2026-42945-nginx-rift-poc

CVE-2026-42945-nginx-rift-poc

Ver Repositório
1há 3 mesesAinda não revisado

Sobre

PoC para CVE-2026-42945 (nginx Rift) — estouro de buffer no heap em ngx_http_rewrite_module. Inclui modos de detecção/sondagem/exploração, laboratório Docker de duas fixtures, descoberta empírica de endereços e varredura de offsets verificada por OOB. Divulgação original por depthfirst.

Compartilhar

NGINX Rift — CVE-2026-42945

Prova de conceito de RCE para CVE-2026-42945, um estouro de buffer heap crítico no ngx_http_rewrite_module do NGINX introduzido em 2008. Permite execução remota de código não autenticada contra servidores que usam combinações de captura rewrite ... ?... + set.

Divulgação original da vulnerabilidade: depthfirst — encontrada juntamente com CVE-2026-42946, CVE-2026-40701, CVE-2026-42934 por meio do sistema autônomo de auditoria de código-fonte deles.

Estrutura

root@kitploit:~
poc-CVE-2026-42945/
├── exploit.py            — improved PoC (3 modes: --check / --probe / --exploit)
├── poc.py.orig           — original depthfirst PoC (reference)
├── env/                  — dual-fixture Docker lab
│   ├── Dockerfile          (vuln: nginx commit 98fc3bb78)
│   ├── Dockerfile.patched  (patched: release-1.31.0)
│   ├── docker-compose.yml  (both services)
│   ├── nginx.conf          (vulnerable rewrite + set config)
│   ├── entrypoint.sh       (runs under setarch -R — ASLR off)
│   └── server.py           (backend stub)
├── discover-addresses.sh — extract HEAP_BASE / LIBC_BASE / system() offset from running container
├── verify.sh             — dual-fixture reproducer (exploit vuln, prove patched blocks)
├── setup.sh              — build helper (legacy single-image)
├── references.md         — full bug mechanics, exploitation strategy, mitigations
└── README.md             — this file

O Bug (TL;DR)

Mecanismo de script de duas passagens, dessincronização da flag is_args:

  • Passagem de comprimento vê is_args = 0 → aloca o comprimento bruto da captura
  • Passagem de cópia vê is_args = 1 → expansão de 3x em ngx_escape_uri(NGX_ESCAPE_ARGS) → estouro de heap

Exploração: heap feng shui via corpo do POST /spray (bytes NUL permitidos no corpo, ngx_pool_cleanup_s falso plantado) + estouro de URI corrompendo o cabeçalho cleanup do ngx_pool_t adjacente. Destruição do pool → system(cmd).

Mecânica completa + estratégia de exploração em references.md.

Afetadas e Corrigidas

ProductAffectedFixed
NGINX Open Source0.6.27 – 1.30.01.30.1, 1.31.0
NGINX PlusR32 – R36R36 P4, R35 P2, R32 P6

Aviso do fornecedor: https://my.f5.com/manage/s/article/K000160932

Início Rápido

root@kitploit:~
# Build both fixtures
docker compose -f env/docker-compose.yml build

# Start lab (vuln=:19321, patched=:19421)
docker compose -f env/docker-compose.yml up -d

# Detect-only (no overflow trigger)
python3 exploit.py --check --host 127.0.0.1 --port 19321

# Full exploit
python3 exploit.py --exploit --host 127.0.0.1 --port 19321 \
    --cmd 'echo pwned > /tmp/rift'

docker exec nginx-rift-vuln cat /tmp/rift

# Dual-fixture verify (exploit vuln + confirm patched blocks)
./verify.sh

# Teardown
docker compose -f env/docker-compose.yml down

Modos

Alvos que não sejam localhost exigem a flag --i-have-tested-this (confirmação de que os offsets fixos correspondem ao build implantado).

Descoberta de Endereços

Os valores padrão de --heap-base / --libc-base / --system-offset são os do laboratório incluído (Ubuntu 22.04 / glibc 2.35 / nginx commit 98fc3bb78 / ASLR desativado). Para um build novo ou uma libc diferente:

root@kitploit:~
docker compose -f env/docker-compose.yml up -d nginx-vuln
./discover-addresses.sh
# Copy values into exploit.py invocation

Ressalvas

  • Apenas laboratório. Os offsets fixos são estáveis somente dentro do fixture incluído. A exploração em produção exige derivação de offsets por alvo (vazamento de informações + enumeração de offsets).
  • ASLR. O laboratório desativa o ASLR via setarch -R. Alvos reais têm ASLR ativado — é necessário um primitivo adicional de vazamento de informações.
  • Dependência de configuração. A superfície vulnerável exige a combinação rewrite ... ? + set $X $N no nginx.conf implantado. Muitas configurações reais não possuem isso.

Créditos

  • Descoberta do bug + PoC original: depthfirst
  • Este fork: adicionou o modo de detecção --check, a enumeração de offsets --probe, o fixture corrigido, o helper de descoberta de endereços e o verificador de fixture duplo.
Baixar ferramenta
ModeUse caseSide effect
--checkDetecta a presença da superfície de rewriteNenhum — envia apenas URIs de sondagem pequenas
--probeEnumera offsets de chegada do spray para ESTE buildDeruba worker(s) durante a busca; sem execução
--exploitCadeia RCE completaQueda do worker + chamada system() com --cmd