Descoberta e escopo da vulnerabilidade
Uma nova vulnerabilidade no NGINX JavaScript (njs), rastreada como CVE-2026-8711, permite que atacantes remotos não autenticados disparem um estouro de buffer baseado em heap que pode levar a negação de serviço e, em algumas condições, execução remota de código no processo worker do NGINX.
A falha está ligada à forma como a diretiva js_fetch_proxy lida com variáveis controladas pelo cliente quando combinada com a operação ngx.fetch() do NGINX JavaScript. O problema surge no módulo ngx_http_js_module quando js_fetch_proxy é configurado com pelo menos uma variável NGINX controlada pelo cliente.
Detalhes técnicos da exploração
Se uma localização então invoca uma função NJS que chama ngx.fetch(), um atacante pode enviar solicitações HTTP manipuladas que resultam em um estouro de buffer de heap no processo worker do NGINX. A vulnerabilidade é classificada como CWE-122: Estouro de Buffer Baseado em Heap e é rastreada internamente pela F5 como ID 160 para NGINX Plus e NGINX OSS.
Este defeito causa principalmente falhas no processo worker e reinícios automáticos, produzindo efetivamente uma condição de negação de serviço (DoS) no plano de dados do NGINX. Em sistemas onde o Address Space Layout Randomization (ASLR) está desabilitado ou mal configurado, o estouro pode ser explorável para executar código arbitrário no contexto do worker.
Impacto e alcance
A vulnerabilidade afeta as versões do NGINX JavaScript (njs) 0.9.4 a 0.9.8, com a correção introduzida no njs 0.9.9. O componente impactado é o módulo ngx_http_js_module, que expõe diretivos de processamento HTTP baseados em NJS, como js_content e js_fetch_proxy.
Um padrão vulnerável típico é uma configuração em que js_fetch_proxy constrói uma URL de proxy usando cabeçalhos fornecidos pelo cliente, por exemplo, $http_x_user e $http_x_password, e js_content aponta para uma função NJS (por exemplo, main.fetcher) que chama ngx.fetch() com essa URL.
Medidas de mitigação recomendadas
Administradores executando versões afetadas do njs são fortemente aconselhados a atualizar para o NGINX JavaScript 0.9.9 ou posterior como a principal correção. Ambientes onde a coluna "Versões conhecidas por serem vulneráveis" se aplica devem mover para uma versão listada na coluna "Correções introduzidas em" ou posterior.
Onde uma atualização imediata não é possível, os operadores devem revisar as configurações para o uso de js_fetch_proxy com variáveis controladas pelo cliente e refatorar ou remover esses padrões, e garantir que o ASLR esteja habilitado em todos os hosts NGINX para dificultar tentativas de execução de código.
Implicações para o Brasil
Considerando a ampla adoção do NGINX no Brasil para servidores web e balanceadores de carga, esta vulnerabilidade representa um risco significativo para organizações brasileiras que utilizam o NGINX JavaScript. A falha pode afetar serviços críticos e expor dados sensíveis se não for mitigada rapidamente.
Empresas brasileiras devem priorizar a atualização do njs e revisar suas configurações para garantir que não estejam utilizando padrões vulneráveis que possam ser explorados por atacantes.
O que os CISOs devem fazer agora
Os Chief Information Security Officers (CISOs) devem revisar imediatamente as configurações do NGINX JavaScript em seus ambientes e garantir que todas as instâncias afetadas sejam atualizadas para a versão 0.9.9 ou posterior. Além disso, é crucial implementar monitoramento para detectar tentativas de exploração da vulnerabilidade.
A segurança do NGINX deve ser uma prioridade máxima, e as organizações devem estar preparadas para responder rapidamente a incidentes de segurança que possam comprometer seus servidores web.
Perguntas frequentes
Qual é o risco de CVE-2026-8711?
A vulnerabilidade permite que atacantes disparem um estouro de buffer baseado em heap que pode levar a negação de serviço e, em algumas condições, execução remota de código.
Como posso verificar se estou vulnerável?
Verifique a versão do NGINX JavaScript (njs) instalada. Se estiver entre 0.9.4 e 0.9.8, você está vulnerável.
Devo atualizar imediatamente?
Sim, é altamente recomendável atualizar para a versão 0.9.9 ou posterior o mais rápido possível para mitigar o risco de exploração.