
Uma falha de estouro de buffer na heap (heap buffer overflow), identificada como CVE-2026-42533, afeta o mecanismo de script do NGINX e permite que atacantes remotos causem negação de serviço ou, sob certas condições, executem código arbitrário.
| Componente | NGINX Open Source (versões 0.9.6 a 1.31.2), NGINX Plus, NGINX Ingress Controller, Gateway Fabric, App Protect WAF e Instance Manager. |
| Vetor | Requisições HTTP manipuladas que exploram uma condição de corrida na engine de script de duas passagens, especificamente envolvendo diretivas 'map' baseadas em regex e capturas numeradas utilizadas em expressões de string. |
| Impacto | Travamento ou reinicialização do processo de trabalho (worker), resultando em negação de serviço (DoS). Em cenários onde o ASLR está desabilitado ou pode ser contornado, há risco de execução remota de código (RCE). |
| Versões Corrigidas | nginx 1.30.4 (stable), nginx 1.31.3 (mainline) e NGINX Plus 37[.]0[.]3[.]1. |
| Prioridade | Atualização imediata para as versões corrigidas devido à gravidade (CVSS v4 9.2) e à possibilidade de exploração remota não autenticada. |
F5 divulgou correções para uma vulnerabilidade crítica no servidor web NGINX, rastreada como CVE-2026-42533. A falha reside no mecanismo de script do NGINX, responsável por montar strings a partir de diretivas durante o tempo de requisição. O problema permite que um atacante remoto, sem autenticação, dispare um estouro de buffer na heap (heap buffer overflow) no processo de trabalho (worker) através do envio de requisições HTTP construídas propositalmente. A gravidade da falha é atestada por pontuações CVSS de 9.2 na versão 4 e 8.1 na versão 3.1, indicando alto impacto na confidencialidade, integridade e disponibilidade.
Embora o impacto imediato e garantido da exploração seja a negação de serviço, através do travamento ou reinicialização forçada do worker, a fabricante alerta para a possibilidade de execução remota de código. Essa condição mais severa depende da capacidade do atacante contornar ou se beneficiar da ausência do Address Space Layout Randomization (ASLR). Pesquisadores independentes argumentam que a própria vulnerabilidade pode facilitar o vazamento de endereços de memória necessários para esse bypass, elevando o risco em configurações padrão de sistemas operacionais modernos, como o Ubuntu 24.04.
A vulnerabilidade explora uma deficiência no design de avaliação de duas passagens (two-pass evaluation) utilizado pela engine de script do NGINX para processar expressões complexas envolvendo capturas de regex e variáveis. Normalmente, o processo funciona em duas etapas: a primeira passagem calcula o tamanho necessário do buffer para armazenar a string resultante e aloca a memória correspondente; a segunda passagem escreve os dados nesse buffer pré-alocado. O problema surge quando ambos os passos leem e confiam em um estado de captura compartilhado, mas esse estado é modificado de forma insegura entre as duas etapas.
O cenário específico que dispara a falha envolve uma diretiva map baseada em regex cuja variável de saída é referenciada em uma expressão de string, logo após uma captura de uma correspondência de regex anterior (como $1 ou $2 de um bloco location). Se avaliação da regex do map ocorrer entre a passagem de medição e a passagem de escrita, ela sobrescreve o estado global de captura. Consequentemente, a primeira passagem dimensiona o buffer com base no tamanho da captura original, mas a segunda passagem preenche o buffer usando dados de uma captura modificada pelo map, que pode ser controlada pelo atacante e ser significativamente maior. Como o buffer alocado é pequeno demais, ocorre o estouro de heap, onde tanto o tamanho quanto o conteúdo do excesso de escrita são derivados da requisição HTTP maliciosa.
Enquanto o aviso da F5 condiciona a execução de código à desabilitação do ASLR, análises técnicas detalhadas publicadas por pesquisadores de segurança sugerem que o CVE-2026-42533 pode, por si só, fornecer os mecanismos para driblar essa proteção. A teoria é que, ao manipular o tamanho da captura durante a condição de corrida, o atacante faz a segunda passagem escrever dados insuficientes em um buffer superdimensionado (ou o contrário, dependendo da direção da alteração). Em builds comuns, isso pode resultar no retorno de dados de heap não inicializados para o cliente.
Esse vazamento de memória não inicializada pode expor endereços de memória que o payload do exploit necessita para calcular offsets e contornar o ASLR. Testes realizados em ambientes padrão indicaram que a recuperação desses endereços é possível através de uma única requisição GET não autenticada, transformando um cenário teórico de negação de serviço em um risco concreto de takeover remoto. Isso contradiz a percepção inicial de que a falha seria apenas DoS em sistemas configurados corretamente, elevando a urgência da aplicação do patch.
A falha não afeta todas as instalações do NGINX, pois sua exposição depende estritamente da configuração do servidor, não apenas da versão do software. A condição degatilhante é a presença de um map baseado em regex onde a variável de saída é usada em conjunto com capturas numeradas de expressões regulares anteriores na mesma string de avaliação. Pacotes como NGINX Ingress Controller, Gateway Fabric, App Protect WAF e Instance Manager também são listados como afetados, embora as builds corrigidas para esses produtos downstream possam não ter sido divulgadas imediatamente.
O escopo de versões vulneráveis é extenso, abrangendo desde o nginx 0.9.6 até o 1.31.2, um período que se estende de 2011, quando o suporte a regex em mapas foi introduzido, até recentes versões do ramo mainline. Administradores devem verificar ativamente suas configurações em busca de padrões que combinem map com regex e referências a $1, $2, etc., em strings dinâmicas para determinar o risco real de suas implantações.
- NGINX Open Source versões 0.9.6 a 1.31.2.
- NGINX Plus versões anteriores a 37[.]0[.]3[.]1.
- NGINX Ingress Controller, Gateway Fabric, App Protect WAF, Instance Manager (dependendo da build).
- Configurações que utilizam
mapcom regex e capturas numeradas em expressões de string.
A detecção de tentativas de exploração deve focar na instabilidade dos processos worker e em padrões específicos de requisição que forçam a avaliação complexa de variáveis. Logs de erro devem ser monitorados em busca de sinais de falhas de segmentação (SIGSEGV) associadas a workers do NGINX, que indicam o travamento do processo devido ao estouro de buffer. Ferramentas de auditoria de configuração podem ser utilizadas para varrer os arquivos de configuração (nginx.conf e includes) em busca da estrutura vulnerável.
Equipes de segurança devem varrer a base de código de configuração procurando por blocos map que utilizam regex (~ ou ~*) e rastrear o uso de suas variáveis em locais onde capturas de location ou rewrite também são utilizadas. A presença de crashs súbitos de workers sem Thanksgiving anterior, seguidos de reinicialização automática, é um forte indicador de tentativa de exploração, embora o ataque também possa ser realizado de forma furtiva se o objetivo for apenas o vazamento de memória para bypass de ASLR.
- Monitoramento de logs de aplicações e sistemas operacionais por falhas de segmentação (SIGSEGV) em processos nginx.
- Auditoria automatizada de arquivos de configuração para identificar blocos
mapcom regex seguidos de referências a variáveis de captura. - Análise de tráfego de rede em busca de requisições HTTP que manipulam excessivamente cabeçalhos ou URIs para forçar a lógica de reescrita.
- Verificação de versões do NGINX em uso comparando-as com os ranges vulneráveis (0.9.6 a 1.31.2).
A única mitigação completa e confiável é a atualização do software para as versões corrigidas: nginx 1.30.4 (stable), nginx 1.31.3 (mainline) ou NGINX Plus 37[.]0[.]3[.]1. A F5 sugere, como medida provisória para quem não pode aplicar o patch imediatamente, modificar a configuração para usar capturas nomeadas (named captures) em vez de capturas numeradas dentro das expressões afetadas. No entanto, pesquisadores indicam que essa mitigação pode não ser total, pois ainda existe um caminho de código secundário onde a redefinição do mesmo grupo nomeado pela regex do mapa pode levar ao mesmo estouro de buffer.
Dado que está é a terceira falha de estouro de heap revelada no código de avaliação de expressões do NGINX em aproximadamente dois meses — seguindo falhas similares como Rift (CVE-2026-42945) —, a priorização da atualização é crucial. Recursos de varredura de configuração podem ajudar a identificar rapidamente se a instância é vulnerável, permitindo que os esforços de patching sejam direcionados aos sistemas com maior risco de exposição. É recomendável evitar 'workarounds' dependentes de complexas alterações de configuração, optando-se pela atualização binária assim quanto possível.
- Atualizar imediatamente para nginx 1.30.4, 1.31.3 ou NGINX Plus 37[.]0[.]3[.]1.
- Revisar configurações para eliminar o uso de capturas numeradas em expressões de string combinadas com mapas baseados em regex.
- Considerar a mitigação via capturas nomeadas, mas estar ciente de possíveis variantes de exploração não cobertas por está medida.
- Implementar monitoramento rigoroso de integridade de processos após a mitigação para garantir a eficácia da solução.
0 Comentários