
Script local de avaliação de risco para CVE-2026-42945 (nginx-rift). Verifica versão, configuração vulnerável de rewrite+set, status de ASLR e compilação com hardening para determinar o risco real de RCE vs. DoS.
Ferramenta de avaliação de risco local para CVE-2026-42945 (Nginx Rift). Diferente de simplesmente dizer "versão afetada é perigosa", este script verifica camada por camada as três condições que realmente determinam o risco, fornecendo uma conclusão adequada à sua situação real.
CVE-2026-42945 é uma vulnerabilidade de estouro de buffer na heap (CWE-122) no módulo ngx_http_rewrite_module do nginx que existe há 18 anos, com pontuação 9.2 no CVSS 4.0. Mas o comunicado tem uma restrição crucial:
"Execução de código possível em sistemas sem proteção ASLR"
A exploração de RCE requer que três condições sejam atendidas simultaneamente:
rewrite + setFaltando qualquer uma, o pior resultado é a reinicialização automática do processo worker após travamento (DoS), e não a tomada de controle do servidor.
Análise detalhada em: 《A bomba de 18 anos escondida no nginx: a vulnerabilidade de 9.2 realmente explodiu seu servidor?》
# Execute (requer sudo para ler a configuração completa do nginx)
sudo bash check_cve_2026_42945.sh
O script verifica sequencialmente os quatro itens a seguir. Se qualquer um não for atendido, ele sai prematuramente e fornece uma conclusão:
| Item Verificado | Descrição |
|---|---|
| Versão do nginx | Faixa afetada: 0.6.27 – 1.30.0 |
| Configuração de gatilho da vulnerabilidade | Combinação de rewrite com ? e set com grupo de captura no mesmo bloco location |
| Status do ASLR | Leitura de /proc/sys/kernel/randomize_va_space |
| Proteção de compilação | Detecta -fcf-protection / FORTIFY_SOURCE / Full RELRO / proteção de pilha |
Caso 1: Versão afetada, mas sem configuração de gatilho da vulnerabilidade (mais comum)
[*] Versão do nginx: 1.24.0
[!] Versão 1.24.0 está na faixa afetada, continuando a verificar condições de gatilho...
[*] Escaneando configuração do nginx (verificando combinação rewrite+set vulnerável)...
[✓] Nenhuma configuração de gatilho encontrada (combinação rewrite+set)
Conclusão: Versão afetada, mas sem configuração de gatilho, risco real muito baixo
Sugestão: Planeje atualizar para 1.30.1 / 1.31.0, sem necessidade de ação urgente
Caso 2: Configuração de gatilho presente, ASLR ativado, proteções de compilação completas
[!] Versão 1.24.0 está na faixa afetada, continuando a verificar condições de gatilho...
[!] Configuração de gatilho encontrada:
→ location ~ ^/api/(.*)$ {
[✓] ASLR ativado (nível 2, randomização completa)
→ Pré-requisito para exploração confiável de RCE não atendido, pior caso é travamento do worker (DoS)
[✓] Detectado -fcf-protection (Proteção de fluxo de controle Intel CET)
[✓] Detectado FORTIFY_SOURCE=3
[✓] Detectado Full RELRO (GOT somente leitura)
[✓] Detectada proteção de pilha (stack-protector)
Nível de risco: Baixo
Sugestão: Atualizar para nginx 1.30.1 / 1.31.0 na próxima janela de manutenção
Caso 3: Configuração de gatilho presente, ASLR desativado
[!] Configuração de gatilho encontrada:
→ location ~ ^/api/(.*)$ {
[✗] ASLR desativado! Risco de RCE aumentou significativamente
Nível de risco: Alto (DoS confirmado / RCE possível)
Ação imediata:
1. Remover ou modificar temporariamente a configuração rewrite+set que aciona a vulnerabilidade
2. Confirmar ativação do ASLR: echo 2 | sudo tee /proc/sys/kernel/randomize_va_space
3. Atualizar o nginx: apt install nginx ou compilar 1.30.1+
| Nível | Significado | Ritmo de ação recomendado |
|---|---|---|
| Sem impacto | nginx não instalado ou versão já corrigida | Nenhuma ação necessária |
| Muito baixo | Versão afetada, mas sem configuração de gatilho | Atualizar na próxima manutenção de rotina |
| Baixo | Configuração de gatilho presente, mas ASLR + proteções de compilação completas | Atualizar na próxima janela de manutenção |
| Médio | Configuração de gatilho presente, defesas com lacunas | Atualizar o mais rápido possível, risco de disponibilidade |
| Alto | Configuração de gatilho + ASLR desativado + defesas ausentes | Agir imediatamente |
| Produto | Versões Afetadas | Versões Corrigidas |
|---|---|---|
| NGINX Open Source | 0.6.27 – 1.30.0 | 1.30.1 / 1.31.0 |
| NGINX Plus | R32 – R36 | R36 P4 / R35 P2 / R32 P6 |
# Ubuntu / Debian
sudo apt update && sudo apt install nginx
# Verificar versão
nginx -v
Comunicado oficial: https://my.f5.com/manage/s/article/K000161019
O script foi verificado nos seguintes cenários:
Ambiente de teste: Ubuntu 22.04 LTS, nginx 1.24.0 (pacote oficial do Ubuntu)
include com múltiplas camadas podem não ser detectadas (o script expande todos os includes com nginx -T, cobrindo a grande maioria dos casos)MIT