
Código de exploração para CVE-2026-42533, fornecendo implementação de prova de conceito para a vulnerabilidade especificada.
Pesquisa de segurança de cadeia completa sobre CVE-2026-42533 (CVSS 4.0 9.2
CRÍTICO): um estouro de buffer de heap no motor de scripts do NGINX, onde um
map baseado em regex corrompe o estado de captura compartilhado entre as passagens
de medição de comprimento e de cópia de uma avaliação de valor complexo — alcançável
pré-autenticação tanto na superfície HTTP quanto na stream (TLS SNI).
Resultado: execução remota de código pré-autenticação (system() como o usuário
worker) em um ambiente de laboratório fixado, reproduzido 3/3 — além de uma
cadeia de pesquisa independente no módulo HTTP que mapeia as primitivas da falha
desde a causa raiz até o comprometimento determinístico do worker.
| Afirmação | Evidência |
|---|---|
| Causa raiz derivada dos commits de correção (não de blogs) | finding-sheet |
| Detector seguro: oráculo vulnerável vs corrigido, zero travamentos | poc/diagnose.py (divergência servida vs 500 no buffer space) |
| DoS determinístico do worker (abort por corrupção de heap, core dump) | poc/crash.py — 2/2, mudança de X-Worker-PID prova a morte do worker |
| Estouro de bytes arbitrários incl. NULs (escrita capaz de ponteiros) | primitiva de body-map HTTP, dump de upstream bruto verificado |
| RCE pré-autenticação, ASLR derrotado em tempo de execução (sem muletas de laboratório) | exploit/stream_rce.py — 3/3, vazamento + spray + reconstrução de sessão |
# stream variant: the full chain (build is a pinned nginx rev, ~3 min)
cd lab/stream && docker compose up -d --build && cd ../..
python3 exploit/stream_rce.py --host 127.0.0.1 --port 29443 \
--cmd 'echo pwned-by-cve-2026-42533 > /tmp/proof'
docker compose -f lab/stream/docker-compose.yml exec nginx-rce cat /tmp/proof
# HTTP variant: deterministic crash PoC + safe detector
cd lab && docker compose up -d --build && cd ..
python3 poc/crash.py 127.0.0.1 8080 # worker aborts, core dumped
python3 poc/diagnose.py 127.0.0.1 8080 # VULNERABLE / PATCHED oracle
| Doc | O que é |
|---|---|
| docs/finding-sheet.md | Ficha técnica de uma página: versões, CVSS, padrões de configuração, assinaturas de detecção |
| docs/report-ptes.md | Relatório completo estruturado em PTES (7 fases) com evidências de laboratório |
| docs/research-writeup.md | A narrativa da investigação — metodologia, becos sem saída, lições portáveis, comparação com trabalhos anteriores |
A cadeia de pesquisa do módulo HTTP é trabalho original: a compilação de script de comprimentos/valores assimétricos medida empiricamente, a lei de passagem de valor das três cópias, a primitiva de mapa de corpo preservadora de NUL e a perícia da cadeia de aborto do alocador. O RCE completo da variante de stream segue a abordagem publicada da DepthFirst Disclosures (um repórter creditado) com atribuição — consulte a seção Prior work do writeup para a comparação técnica por técnica de ambas as cadeias.
Este repositório compartilha sua metodologia com
CVE-2026-42945 — NGINX Rewrite Heap Overrun: Analysis & Deterministic DoS
(repositório irmão): a mesma classe de bug de comprimento/valor em duas passagens no motor de script do nginx, alcançada ali através de rewrite/is_args — detector diferencial mais DoS determinístico de worker, com a questão do RCE deixada em aberto.
docs/ finding sheet · PTES report · research writeup
poc/ diagnose.py (safe oracle) · crash.py (deterministic DoS)
exploit/
stream_rce.py full RCE chain (leak → spray → session rebuild → system)
exploit.py HTTP-module chain (research artifact, near-closure)
lab/ HTTP lab (vulnerable 1.31.2 + patched 1.31.3, backends)
lab/stream/ pinned-build lab for the stream variant
b767540, a8289aa, 0cca8e0Artefato de pesquisa educacional. Execute apenas contra sistemas que você possui ou para os quais tem autorização explícita de teste. A vulnerabilidade está corrigida — atualize o nginx para ≥ 1.30.4 / ≥ 1.31.3.