Node2Shell: falha crítica no Brotli atinge Node.js, Python e .NET — e o patch existia desde fevereiro
Node2Shell: a falha crítica no Brotli que obrigou Node.js, Python e .NET a correr para o patch
A notícia mais relevante desta quarta-feira (28) não é um novo modelo de linguagem nem um lançamento de celular: é uma correção de emergência que chegou tarde. A CVE-2026-111497, uma escrita fora dos limites (out-of-bounds write) no decodificador da biblioteca de compressão Brotli, do Google, ganhou três apelidos em poucos dias — Node2Shell , Broccoli2Shell e HTTP2Shell — e transformou uma rotina de atualização em um mutirão que envolve Node.js, Bun, pacotes Python, .NET, PowerShell, Envoy e Istio.
O detalhe que faz a história render: segundo o WebProNews, o defeito foi encontrado pela equipe Codex Security, da OpenAI , e corrigido no código-fonte em fevereiro . Nenhuma versão estável, porém, embarcou a correção até meados de outubro. Ou seja, a falha ficou meses conhecida internamente e disponível em builds de desenvolvimento, enquanto o mundo seguia usando bibliotecas vulneráveis.
Uma falha, uma cadeia enorme de dependências
O problema está no Brotli, o algoritmo de compressão criado pelo Google e usado em praticamente toda a web moderna — de respostas HTTP comprimidas a arquivos de fontes. Segundo o BleepingComputer, são afetadas as versões 1.0.3 a 1.0.9, 1.1.0 e 1.2.0 . Um dado comprimido malicioso pode sobrescrever memória além do buffer reservado, o que abre caminho para vazamento de dados, derrubada do serviço e, no pior cenário, execução remota de código sem autenticação.
O que assusta é o alcance. Como resume o The Hacker News, o defeito não é "do Node.js": está na biblioteca que muitos projetos carregam sem perceber. A lista de afetados inclui:
Node.js , nas linhas 22, 24 e 26, com 22.23.4 e 24.22.1 entre as versões corrigidas;
Bun , que publicou a correção na 1.4.4;
os pacotes Python Brotli e brotlicffi , com versões 1.2.1 e 1.2.1.0;
.NET e PowerShell , que emitem atualizações próprias;
proxies Envoy e Istio configurados para descomprimir Brotli.
Fica o alerta mais incômodo: a linha 20.x do Node.js , já fora de suporte, não recebeu correção. Quem ainda roda versões antigas precisa planejar migração, não apenas um npm update .
O patch que ficou oito meses na gaveta
O segundo fato importante é sobre processo, não sobre código. Uma correção pronta desde fevereiro só chegou ao público em 21 de outubro, quando o Node.js liberou um lote de dez vulnerabilidades, quatro delas de severidade alta , conforme o MobileBit.
Não há, até agora, registro de exploração ativa em ambientes reais — o heise online relata que existem provas de conceito públicas, mas nenhum ataque confirmado. Isso dá uma janela preciosa: falhas de memória em decodificadores de compressão são justamente as favoritas de atacantes, porque o gatilho pode chegar em qualquer requisição HTTP com Content-Encoding: br .
O episódio também expõe uma fragilidade da divulgação coordenada. Quando o conserto depende de vários mantenedores, cada projeto publica em uma data diferente — e a janela em que ninguém está protegido se alarga. Some-se a isso a confusão de nomes (três apelidos para o mesmo CVE) e o resultado é o pior cenário para quem precisa convencer a liderança de que a atualização é urgente.
O que fazer agora
A boa notícia é que existe lista clara de versões seguras. Vale tratar como prioridade da semana:
Node.js : atualize para 22.23.4, 24.22.1 ou a versão mais recente da linha 26;
Brotli : suba para 1.2.1;
Bun : 1.4.4;
Python : Brotli 1.2.1 e brotlicffi 1.2.1.0;
.NET e PowerShell : aplique as atualizações cumulativas do mês;
Envoy e Istio : revise se a descompressão de Brotli está exposta em rotas públicas.
Para além da atualização pontual, o recado é de inventário: descubra onde o Brotli aparece na sua stack, inclusive como dependência indireta. Um SBOM atualizado deixa de ser formalidade e passa a ser o único jeito de responder à pergunta "estamos expostos?" em menos de uma hora.
O que isso muda daqui para frente
O caso Node2Shell mostra que a segurança de software livre já não depende só de achar bugs — depende de distribuir as correções. Oito meses entre a cura e o remédio é tempo suficiente para uma falha sair do anonimato e virar ferramenta de ataque. Empresas que tratam atualização como tarefa de manutenção, e não como resposta a risco, seguem apostando em sorte.
Se a sua equipe já atualizou — ou se ainda está caçando onde o Brotli se esconde nos seus sistemas —, conta aqui nos comentários. E compartilhe este post com quem mantém servidores Node.js ou Python na produção: pode ser o empurrão que faltava para o patch sair hoje.
Fontes
Continue lendo
Desenvolvimento Polícia Civil de SP: 22 mil credenciais à venda por US$ 40 mil, Barracuda com root explorado e Nitori com 37,6 milhões
Grupo bl33dr00t põe 22 mil credenciais da Polícia Civil de SP à venda por US$ 40 mil enquanto a SSP nega invasão. Na mesma janela, a Barracuda confirma exploração de falhas que dão root em gateways ESG, a CISA corre contra o prazo de 13/11 e a Nitori expõe até 37,6 milhões de registros.
Ler artigo →
Desenvolvimento RHEL 10.3 sela o sistema com criptografia e o EPYC 9006 chega a 256 núcleos: a base física dos agentes de IA
Red Hat libera RHEL 10.3 e 9.9 com imagens seladas, MCP server GA para diagnóstico assistido e GCC 16. No mesmo dia, a AMD põe à venda o EPYC 9006 (Zen 6) com até 256 núcleos. E o Paraná usa IA do Google para encurtar a busca por terapia oncológica.
Ler artigo →
Desenvolvimento N-central fora do ar no mundo inteiro: 33 zero-days derrubam o RMM que administra o resto
N-able tirou o N-central hospedado do ar em todo o mundo depois que um pesquisador publicou 33 zero-days com PoC e lançou hotfix com 7 CVEs. Na mesma janela, o Citrus usa VLESS e LLMs em ataques, e a Fireworks AI confirma vazamento de datasets e pesos de modelos.
Ler artigo →