Pular para o conteúdo principal
Fechar
Segurança

NGINX Rift: bug de 18 anos achado por IA em 6 horas

Gabriel Ferraresi· CEO | Tech8619 de maio de 20266 min
nginxsegurançaiavulnerabilidadeheap overflow

Um bug crítico presente no NGINX desde 2008. CVSS 9.2. Heap buffer overflow com caminho para RCE. Nenhum scanner detectou em 18 anos. Uma plataforma de IA encontrou em 6 horas. Na Tech86, acompanhamos essa descoberta de perto — e o que ela representa para a segurança de infraestrutura é mais importante que o bug em si.

O bug: heap overflow determinístico no rewrite engine

O motor de rewrite do NGINX opera em dois passes. O primeiro calcula o tamanho do buffer necessário. O segundo copia os dados para esse buffer. O problema está na desconexão entre esses dois passes.

Quando uma diretiva rewrite contém ? na replacement string, a flag is_args é setada no engine principal e nunca é limpa. No momento de calcular o tamanho, o sub-engine — zerado — ignora o escaping. No momento de copiar, o engine principal com is_args=1 chama ngx_escape_uri. Cada byte escapável (+, %, &) expande de 1 para 3 bytes. O buffer é alocado para raw_size. A cópia escreve raw_size + 2*N bytes. Overflow determinístico, controlado pelo atacante via URI.

O gatilho é um padrão de configuração documentado e recomendado: capturas PCRE não-nomeadas ($1, $2) combinadas com ? na replacement e uma diretiva set, rewrite ou if subsequente. Algo como rewrite ^/users/([0-9]+)$ /profile.php?id=$1?last; — exatamente o tipo de regra que API gateways usam diariamente.

A exploração: RCE sem autenticação em um único request

Um único HTTP request. Sem autenticação. Sem sessão prévia. É tudo o que um atacante precisa.

O overflow corrompe a estrutura ngx_pool_t adjacente na heap. O ponteiro cleanup no offset 64 é sobrescrito. Na destruição do pool, o NGINX executa o que estiver nesse ponteiro — um caminho direto para execução de código arbitrário.

O PoC demonstrado usa cross-request heap feng shui: duas conexões simultâneas para posicionar pools adjacentes, POST bodies para spray de fake cleanup objects chamando system(), e URI-safe payload para sobrescrever bytes baixos do ponteiro. Com ASLR desabilitado, RCE é confirmado. Com ASLR habilitado, DoS é garantido — e o pesquisador observa: o master faz fork de workers com layout idêntico. Se o exploit crasha um worker, spawna outro com o mesmo layout. Pode-se tentar até conseguir.

Isso não é teórico. É reproduzível. E afeta praticamente todo NGINX do planeta — 33% dos websites globais.

Quem encontrou: IA em 6 horas, humanos em 18 anos

DepthFirst AI. Plataforma LLM-powered. Um clique de onboarding. Seis horas de análise. Quatro memory corruption bugs na mesma sessão:

  • CVE-2026-42945 (CVSS 9.2) — heap overflow no rewrite
  • CVE-2026-42946 (CVSS 8.3) — alocação de ~1 TB em SCGI/UWSGI
  • CVE-2026-40701 (CVSS 6.3) — use-after-free no SSL/OCSP
  • CVE-2026-42934 (CVSS 6.3) — out-of-bounds read no charset

Dezoito anos. Um terço da web. Zero detecção humana. A IA não encontrou por acaso — ela sistemáticamente explorou code paths internos que fuzzers tradicionais não alcançam. O rewrite engine do NGINX é um subsistema complexo com estado compartilhado entre passes, e a combinação de is_args persistente com escaping condicional é exatamente o tipo de bug lógico que testes de superfície nunca vão encontrar.

A assimetria que muda o jogo

O custo ofensivo para encontrar bugs como o NGINX Rift caiu de anos para horas. O custo defensivo para aplicar o patch em milhares de instâncias continua ordens de magnitude maior. Essa é a assimetria que define o novo cenário de segurança.

Pense na matemática: um atacante com acesso a uma ferramenta de IA pode escanear dezenas de projetos open source por dia. Cada scan tem o potencial de encontrar bugs críticos que existem há anos. Do lado defensivo, cada vulnerabilidade descoberta exige inventário de ativos, priorização, janela de manutenção, teste de regressão, deploy coordenado — e isso para cada instância, em cada ambiente, em cada cliente.

Na Tech86, vimos essa dinâmica se repetir em cada vulnerabilidade crítica dos últimos anos. O tempo entre disclosure e exploração em massa encolheu de meses para dias. O tempo entre disclosure e patch completo na infraestrutura real dos clientes não acompanhou. E o NGINX Rift é o exemplo mais dramático até agora: 18 anos de vulnerabilidade, descoberta em horas, e semanas até que cada instância esteja corrigida.

O que isso significa na prática

Essa assimetria favorece quem rodar o próximo scan autônomo primeiro. E o próximo alvo não precisa ser o NGINX. Pode ser qualquer software que rode em escala global — e quase todos têm subsistemas com lógica interna complexa que nunca foi auditada com essa profundidade.

A defesa perimetral deixa de ser opcional. Quando o tempo entre descoberta e exploração colapsa, você não pode depender de "vamos patchar na próxima janela". Precisa de camadas que filtrem o tráfego malicioso antes que ele alcance o software vulnerável. Precisa de visibilidade sobre o que está rodando e onde. Precisa de processos de patching que funcionem em horas, não em semanas.

O workaround imediato para o NGINX Rift — capturas nomeadas — é simples e eficaz. Mas é um band-aid. O problema estrutural é que a velocidade da descoberta de vulnerabilidades agora é governada por IA, e a velocidade da resposta ainda é governada por processos humanos. Até essa lacuna fechar, WAF e defesa em profundidade não são luxo — são a única coisa entre sua infraestrutura e o próximo CVE de 9.2.

Conclusão

O NGINX Rift não é só mais uma vulnerabilidade. É um marco: o momento em que a IA provou que pode encontrar bugs críticos que 18 anos de auditoria humana não encontraram — e fez isso em uma tarde. A pergunta não é se a próxima vulnerabilidade assim será descoberta. É quando. E se sua infraestrutura estará protegida quando isso acontecer.

Na Tech86, construímos nossa Blindagem Perímetro WAF para ser exatamente essa camada: proteção que funciona enquanto o patch não chega, regras que bloqueiam padrões de exploração antes que eles atinjam o software vulnerável, e visibilidade sobre o tráfego que chega nos seus servidores. Porque em um mundo onde bugs de 18 anos são encontrados em 6 horas, você não pode esperar até a próxima janela de manutenção.

Interessado nesta solução?

Conheça nossos serviços gerenciados e infraestrutura.

Conheça Blindagem Perímetro WAF

Perguntas Frequentes

Se você usa rewrite com capturas PCRE não-nomeadas ($1, $2) e o caractere ? na replacement string, sim. Esse padrão é comum em API gateways e roteamentos dinâmicos. Verifique seu nginx.conf.

Sim. Substituir $1, $2 por capturas nomeadas como (?<user_id>[0-9]+) elimina o code path que ativa a flag is_args no sub-engine. É a mitigação recomendada enquanto o patch não é aplicado.

Com ASLR on, RCE é mais difícil mas não impossível — o pesquisador demonstrou que o master faz fork de workers com layout idêntico, permitindo tentativas repetidas. DoS por corrupção de pool é garantido independentemente de ASLR.

Um WAF perimetral bem configurado reduz significativamente a janela de exploração bloqueando URIs com padrões anômalos de caracteres escapáveis. Não substitui o patch, mas é uma camada crítica de defesa em profundidade.

Fuzzers e scanners tradicionais testam superfícies de entrada conhecidas. O NGINX Rift está em um code path interno do rewrite engine que só é ativado por uma combinação específica de configuração e URI — um cenário que testes genéricos não cobrem.

Blog — Fale Conosco

Tem alguma pergunta sobre nossos artigos ou serviços? Nossa equipe está pronta para ajudar.

Agendar Reunião

Reserve um horário.

Agendar Agora

E-mail

Envie uma mensagem.

[email protected]

WhatsApp

Conversa rápida.

Endereço

Avenida Paulista, 1636 - São Paulo - SP - 01310-200

Especialista Tech86

Online agora

Olá! Como podemos ajudar a escalar seu negócio hoje?

Tech86 Engineering

Nós valorizamos sua privacidade

Utilizamos cookies e tecnologias similares para otimizar a sua experiência, analisar o tráfego do site e personalizar conteúdo. Ao clicar "Aceitar Todos", você concorda com o uso de todos os cookies. Leia nossa Política de Privacidade.