AISubHub/Notícias de IA
Desenvolvedores

Análise aprofundada · Cerca de 7 min de leitura

Brotli: o patch precisa chegar a cada cópia do decodificador em execução

O Node.js documenta a CVE-2026-111497; um guia de implantação relaciona correções e controles temporários, com limites de decodificação e suporte.

Publicado aqui
Data da fonte
Fonte verificada

O Node.js documenta a CVE-2026-111497, relatada pela OpenAI Codex Security, enquanto o PatchthePlanet relaciona correções para os projetos que incorporam a biblioteca e controles temporários. O caso ilustra a distância entre reparar uma biblioteca compartilhada e proteger o software implantado. A exposição depende de dados não confiáveis chegarem a um decodificador afetado; usar Brotli, por si só, não demonstra que toda implantação seja vulnerável.

Ouça as notícias

Ouça este artigo ou continue ouvindo as notícias.

Brotli: o patch precisa chegar a cada cópia do decodificador em execução

Preparando a leitura…

Voz do dispositivo

O navegador ou dispositivo processa a voz. O AISubHub não envia o texto a uma API de áudio. As vozes e a reprodução com a tela bloqueada variam conforme o dispositivo.

Ao continuar, uma frase curta pode se repetir.

Resumo

  • O Node.js lista correções nas versões 22.23.4, 24.22.1 e 26.12.1; a falha pode corromper a memória quando uma aplicação descompacta dados Brotli fornecidos por um invasor.
  • O guia lista correções para Bun, Envoy, Istio e o Brotli original, mas alerta que uma versão corrigida de uma linha sem suporte não constitui um caminho de atualização com suporte.
  • Os controles temporários precisam bloquear Brotli não confiável antes da decodificação em cada caminho relevante. Desativar a compressão de saída ou apenas remover br de Accept-Encoding não basta.

A divulgação e as datas das fontes

O aviso do Node.js credita o relato da vulnerabilidade do Brotli a Khai Tran e Sylvie Mayer, da OpenAI Codex Security, e a correção a mcollina e aduh95. O guia de implantação do PatchthePlanet relaciona o software afetado a versões e controles temporários. A interpretação prática do AISubHub é que a proteção precisa passar por versões de componentes, runtimes embarcados, aplicações reconstruídas e implantações de usuários realmente em execução; instalar um único pacote não comprova, por si só, a conclusão desse processo.

A página do Node.js traz um título de lançamento de segurança de 21 de outubro, mas não informa a data de inclusão de cada entrada CVE. O PatchthePlanet informa Atualizado em 23 de outubro, o que não corresponde ao horário de sua publicação original. Essas datas não estabelecem quando cada correção chegou aos usuários. O AISubHub leu esses materiais públicos em 24 de outubro; uma data de acesso é distinta do título de uma página de lançamento ou de um rótulo de atualização.

Como oito bytes se tornam um risco

O Node.js explica que uma troca de bloco inválida era tratada como necessidade temporária de mais entrada, e não como erro permanente de formato. O decodificador de fluxo continuava acrescentando bytes a um buffer interno de oito bytes e podia escrever além de seus limites. Quando uma aplicação descompacta dados controlados por um invasor usando node:zlib, as possíveis consequências incluem falha do processo, exposição de memória ou execução remota de código.

O limite relevante é a decodificação de entrada não confiável: corpos de requisição, respostas de servidores não confiáveis e arquivos compactados. Apenas comprimir dados de saída não comprova exposição. O guia também aponta runtimes embarcados, curl/libcurl, bindings de Python ou Java, decodificadores de fontes e leitores de arquivos. Uma aplicação Electron pode conter cópias separadas do Chromium e do Node.js; corrigir uma não comprova que ambas foram corrigidas.

Escolher uma versão corrigida com suporte

O Node.js indica 22.23.4, 24.22.1 e 26.12.1. O PatchthePlanet lista o Bun 1.4.4, que inclui Brotli 1.2.1, e as versões originais do Brotli 1.0.10, 1.1.1 e 1.2.1 para suas respectivas linhas. São versões específicas de cada componente, não um único número capaz de corrigir toda aplicação que incorpora o decodificador.

O mesmo guia lista Envoy 1.40.0, 1.39.3, 1.38.6 e 1.37.8. O Envoy 1.36.12 inclui a correção, mas essa linha não tem suporte. As correções do Istio são 1.29.9, 1.30.6 e 1.31.2; a linha 1.29 chegou ao fim de vida. As duas exceções exigem atenção a caminhos de atualização com suporte, sem confundir a inclusão de um patch com manutenção contínua.

Bloquear a entrada antes da decodificação

O PatchthePlanet recomenda desativar temporariamente a decodificação de dados Brotli não confiáveis quando não for possível aplicar o patch imediatamente. Seu exemplo de Express permite identity, gzip e deflate antes de todos os analisadores de corpo, rejeitando outras codificações ou codificações empilhadas com HTTP 415. Um proxy que decodifica antes precisa de proteção própria. A alternativa inflate:false rejeita todos os corpos de requisição compactados, inclusive gzip e deflate.

Para respostas buscadas de outros servidores, remover br de Accept-Encoding expressa apenas uma preferência: o servidor ainda pode enviar Brotli. O exemplo em Python adia a leitura e a decodificação do corpo até verificar Content-Encoding. Redirecionamentos e novas tentativas estão desativados nesse exemplo; adicioná-los exige verificar cada resposta. Um fetch comum ou uma leitura automática pode decodificar antes que a aplicação examine os cabeçalhos. Limites de tamanho e regras de WAF, isoladamente, não cobrem todos os caminhos.

As alternativas têm alcance limitado

Para Envoy e Istio, o guia desativa o descompressor Brotli nas duas direções, remove substituições em tempo de execução que poderiam reativá-lo e alerta que direções omitidas ficam habilitadas por padrão. Os filtros separados de gzip ou zstd devem ser mantidos; compartilhar um nome não justifica remover todos eles. Os bytes codificados podem seguir para outros componentes, cujos decodificadores ainda precisam de proteção.

A alternativa para Next.js define images.unoptimized globalmente, exige reconstrução e nova implantação e depois verifica se /_next/image deixou de executar o otimizador integrado. Ela não protege loaders personalizados, outras buscas no servidor ou outros decodificadores. No Istio, a configuração efetiva deve ser verificada em cada gateway e sidecar; editar um arquivo não comprova que toda a frota em execução mudou.

Verificar a implantação em execução

O guia pede a atualização das versões fixadas de runtimes e imagens, a reconstrução de contêineres ou executáveis que os incorporam e a reinicialização ou nova implantação de serviços, workers, tarefas agendadas e réplicas. É preciso comparar o binário ou a imagem em execução com a versão corrigida correspondente. Baixar um patch, atualizar a máquina de compilação ou corrigir o componente do navegador não demonstra que todo processo use o decodificador corrigido.

Em um exemplo hipotético do AISubHub, uma CDN poderia comprimir respostas de saída enquanto um worker separado decodifica conteúdo buscado. Desativar a compressão na CDN deixaria inalterada a exposição desse worker; um caminho alternativo até a origem também poderia contornar um bloqueio do proxy. Trata-se de um exemplo de arquitetura, não de uma inspeção dos nossos servidores. A verificação deve cobrir os caminhos relevantes e confirmar que a compressão permitida continua funcionando.

Por que importa

A lição prática é inventariar onde ocorre a decodificação e conectar correções de origem a implantações reconstruídas e realmente em execução. Verificações de versão e bloqueios temporários têm funções diferentes; nem o nome de uma biblioteca compartilhada nem uma única alteração de configuração demonstra proteção de toda a frota.

Limites e disponibilidade

Revisamos os dois avisos públicos, não código de exploração, todas as notas de versão vinculadas ou sistemas de clientes implantados. Os detalhes de versões fora do Node são atribuídos à revisão do PatchthePlanet de 23 de outubro. Não executamos exploração da falha, não atualizamos runtimes e não auditamos servidores; os materiais não demonstram ataques generalizados ou correção universal.

Fontes e evidências

Node.js Project · October 2026 security releases

Data da fonte: · Fonte verificada:

Leituras complementares

PatchthePlanet · Brotli vulnerability deployment advisory (updated October 23; original publication time unknown)

Fonte verificada:

Conteúdo editorial com apoio de IA, verificado em fontes primárias. Alegações dos fornecedores são atribuídas; inclusão não é recomendação.