As imagens deste artigo foram geradas com inteligência artificial. Como publicamos
Durante as últimas semanas, foi descoberto um erro de corrupção de memória no descodificador C de Brotli - o algoritmo de compressão desenvolvido pelo Google - que se propaga aos programas que incluem essa implementação para descomprimir dados com Content-Encoding: br. O problema, registrado como CVE-2026-111497, permite que dados Brotli manipulados escrevam para além do final de um búfer e alterem a memória do processo vulnerável. Na prática isso pode provocar bloqueios, fugas de memória ou, em cenários favoráveis ao atacante, a execução de código arbitrário.
Atos confirmados: o defeito reside no código C que descomprime fluxos Brotli e, uma vez que muitas aplicações e runtimes incorporam uma cópia local desse código, a vulnerabilidade aparece em múltiplos projetos de forma independente. Entre os afetados relatados estão Node.js (parcheado), o runtime Bun, pacotes Python como Brotli e brotlicffi, e proxies como Envoy quando a descompressão Brotli está ativada. A falha foi divulgada publicamente em 21 de outubro, com adesivos já disponíveis em alguns produtos; contudo, cada projeto deve atualizar sua própria cópia do descodificador porque não existe uma única biblioteca compartilhada que se atualize globalmente. O repositório oficial do projeto está localizado https://github.com/google/brotli.

Como funciona tecnicamente (resumen): Brotli opera com estruturas internas e janelas deslizantes para reconstruir dados comprimidos. O bug é uma corrupção de memória clássica em C: uma rota de descompressão permite que entradas malformadas façam com que o algoritmo copie dados além da memória prevista para um búfer. Isto pode sobrepor metadados do processo ou dados críticos na pilha/heap. O efeito final depende do layout de memória, proteções do sistema (ASLR, DEP), e do binário concreto que contém o descodificador; por isso, o mesmo defeito pode ser explorado em uma build e não exploável em outra.
O que foi demonstrado e que não: a equipe de pesquisa de Imperva conseguiu executar código em uma build não modificada de Node.js 24.22.0 para Linux ARM64 usando Brotli malicioso, tanto quando o payload chegava como resposta fetch () como quando foi enviado no corpo de uma petição Express. O exploit exigiu várias tentativas, não foi publicado o PoC e os autores não afirmaram que funcionasse em outras builds ou plataformas. OpenAI e outras assinaturas confirmaram que a vulnerabilidade pode resultar em execução remota em certas condições, mas não há relatos verificados de exploração em ambientes reais até à data; CISA registrou exploração como "ninguna". Em resumo: existe um teste de conceito privado para uma configuração concreta de Node.js, enquanto a exploração no resto do ecossistema permanece incerta.
A quem afeta: qualquer software que descomprima Brotli com o decodificador C vulnerável e receba dados controlados por um terceiro. Exemplos práticos: em Node.js e Bun a exposição aparece quando fetch () processa uma resposta com Content-Encoding: br ou quando middleware como Express 5 ou body-parser 2 descomprimen um corpo enviado pelo cliente. Envoy ou Istio só estão em risco se a descompressão Brotli estiver ativada (por exemplo através de um filtro); se estiver desactivada, a rota de ataque fica fechada. Em Python a situação é mais insidiosa: a mera presença dos pacotes Brotli ou brotlicffi no ambiente faz com que clientes HTTP populares (requests, urllib3, httpx, aiohttp) possam descomprimir respostas Brotli automaticamente, pelo que uma aplicação pode ser exposta sem importar se o seu código importa explicitamente Brotli. As páginas dos pacotes em PyPI estão em https://pypi.org/project/Brotli/ e https://pypi.org/project/brotlicffi/.
Consequências reais: dependendo da aplicação e das mitigações do sistema, um atacante poderia causar recusa de serviço (crash), filtrar memória sensível ou, no pior caso, obter execução remota dentro do processo vulnerável. O impacto operacional é concreto: atualizações por produto, reinícios de serviços e reconstrução de contêineres são necessários porque um processo que não se reinicie continua usando a versão antiga do descodificador em memória.
Medidas concretas a tomar administradores e desenvolvedores (confirmadas e práticas): 1) Actualizar o quanto antes o runtime ou a livraria às versões patchadas publicadas por cada projeto e reiniciar os processos afetados; em ambientes com contentores, reconstruir as imagens para que o binário adesivo esteja presente no arranque. 2) Se não puder actualizar imediatamente, pare de aceitar ou processar Brotli não fiável: Rejeite pedidos entrantes que levem Content-Encoding: br antes de qualquer proxy ou parser tentar descomprimir o corpo. 3) Para clientes HTTP nos quais controlar o comportamento é possível: desactive a descompressão automática de Brotli e, se necessário, desinstale os pacotes Brotli/brotlicffi em ambientes Python para forçar a queda do gzip/deflate. Importante: remover "br" do cabeçalho Accept-Encoding não garante proteção - um servidor pode ignorar o cabeçalho e responder com Brotli -; por isso a recomendação é bloquear ou rejeitar explicitamente respostas com Content-Encoding: br na entrada/saída que controle.

Passos específicos por plataforma (estado e recomendações): Node.js e Bun: Actualizar as versões oficiais alteradas. Em Node.js não existe um workaround documentado que substitua a atualização; reiniciar o runtime é obrigatório. Envoy/Istio: atualizar as versões que incluem a correção ou desactivar o filtro de descompressão Brotli se não for imprescindível. Python: remover os pacotes Brotli e brotlicffi do ambiente se não puder instalar a versão pedida imediatamente; além disso, configurar explicitamente clientes HTTP para não descomprimir respostas br. Sistemas operacionais e pacotes do sistema: As distribuições corrigem seus pacotes em momentos distintos - por exemplo, o Debian publicou uma correção para brotli no Debian 13 em 23 de outubro na versão 1.1.0-2+deb13u1 - mas verifique a política de seu distro e atualize.
Advertências e elementos ainda incertos: embora haja evidência privada de execução de código em uma build concreta de Node.js, não há prova pública simples de exploit que funcione em todas as plataformas. Os escores de gravidade variam entre fornecedores: o Google designou uma nota crítica (CVSS 4.0 9.2), enquanto outros projetos o classificaram como alto ou importante segundo seu próprio contexto. Além disso, as ferramentas de análise de dependências poderiam não detectar automaticamente a condição em ambientes em Python, porque o CVE aponta para o repositório de Brotli e não originalmente para os pacotes PyPI; por isso é recomendável verificar manualmente as versões instaladas e as entradas de segurança publicadas pelos projetos que você usa.
Em resumo: o vetor é claro e o remédio também –atualr e reiniciar – mas a fragmentação do ecossistema (cada produto empacote sua própria cópia do descodificador) obriga a um esforço coordenado por administradores, desenvolvedores e equipamentos de segurança. Para instruções e referências técnicas diretas consulte as fontes originais do projeto Brotli no GitHub ( github.com/google/brotli) e as páginas oficiais dos pacotes Python no PyPI ( Brotli, brotlicffi), além dos alertas de segurança de seus runtimes e distribuições.
Relacionadas
Mas notícias do mesmo assunto.

Wasmtime corrige duas falhas graves em Cranelift (CVE-2026-115889, CVE-2026-115893)
Nas últimas semanas foram corrigidas duas falhas graves em Wasmtime, o ambiente de execução da WebAssembly que se integra em programas fora do navegador. Os mantenedores classif...

Forever Security detecta AGENTS.md em Downloads que tenta instalar o pacote npm function-color
A assinatura de segurança Forever Security relatou a detecção de uma tentativa de compromisso na equipe de um cliente: um arquivo de texto chamado AGENTS.md, colocado na pasta D...

Relatório detalha possível escalada ao root por Tailscale SSH em laboratório
Uma pesquisadora de segurança publicou esta semana um relatório que descreve como, em laboratório, um dispositivo já controlado dentro de uma rede Tailscale pode ser usado para ...

OpenAI reanuda o treinamento frontier sem acesso ao vivo à Internet após resultados de segurança
OpenAI anunciou que retomará o treinamento por reforço (RL) e a inferência interna dos seus modelos mais avançados, mas fá-lo-á com uma restrição clara: o treinamento de "fronti...

BlackX, bootkit UEFI, ataca missões diplomáticas do Tajiquistão, do Uzbequistão e do Turquemenistão
Nas primeiras semanas de 2026, organizações diplomáticas na Ásia Central, concretamente no Tajiquistão, no Uzbequistão e no Turquemenistão, foram atacadas com um novo bootkit UE...

Campanha do k0t explora dispositivos de borda expostos para roubar credenciais e mover
Pesquisadores de cibersegurança documentaram uma campanha em grande escala que explora dispositivos de borda de rede expostos — em particular appliances de VPN e firewalls — par...