Pular para o conteúdo
Notícias e tutoriais sobre Linux
Cibersegurança

Falha crítica no Brotli: CISA alerta para ataques ativos

CISA alerta para hackers explorando o bug Node2Shell no Brotli com risco de RCE.

cisa-confirma-que-o-ambiente-da-sua-ferramenta-de-avaliacao-de-seguranca-quimica-csat-foi-comprometido-em-janeiro

A falha crítica no Brotli, identificada como CVE-2026-111497 e conhecida como Node2Shell, entrou no radar das equipes de segurança após a inclusão no catálogo de vulnerabilidades exploradas da Agência de Segurança Cibernética e de Infraestrutura dos Estados Unidos (CISA). Relatos de tentativas de exploração contra sistemas expostos aumentam a preocupação com uma vulnerabilidade capaz de provocar corrupção de memória, interromper serviços e, em determinadas condições, permitir a execução remota de código.

O problema afeta o decodificador do Brotli, algoritmo de compressão desenvolvido pelo Google e utilizado em diferentes aplicações, servidores e ecossistemas de software. Além do Node.js, a falha exige atenção de administradores que trabalham com .NET, distribuições Linux, contêineres e componentes de infraestrutura que processam dados compactados fornecidos por fontes não confiáveis.

O risco merece atenção imediata porque o Brotli está presente em diversas etapas do processamento de conteúdo na internet. Uma aplicação pode utilizar a biblioteca diretamente, incorporar uma versão própria do componente ou receber dados que serão descompactados automaticamente por uma dependência. Por isso, atualizar apenas um pacote do sistema operacional nem sempre elimina todas as instâncias vulneráveis.

O que é a vulnerabilidade Node2Shell e como ela opera

A vulnerabilidade CVE-2026-111497 está relacionada a uma operação inadequada de escrita na memória durante a decodificação de dados Brotli. Tecnicamente, trata-se de uma falha de escrita fora dos limites de um buffer, classificada como out-of-bounds write. O problema ocorre quando o decodificador processa determinados fluxos compactados malformados.

Em condições normais, o Brotli recebe dados comprimidos, interpreta suas estruturas internas e reconstrói o conteúdo original. Durante esse processo, o decodificador precisa validar os comandos e manter o estado interno consistente. Na falha Node2Shell, uma sequência especialmente construída pode explorar um erro no tratamento de comandos de troca de blocos, fazendo com que o componente interprete incorretamente uma entrada inválida.

O resultado é uma tentativa de escrita fora da região de memória prevista. Dependendo da aplicação, da organização da memória e das proteções disponíveis, essa operação pode corromper dados utilizados pelo processo, provocar uma falha de execução ou abrir caminho para consequências mais graves.

O ataque não depende necessariamente de uma conta autenticada. Se um serviço acessível pela rede aceitar dados controlados pelo invasor e os encaminhar ao decodificador vulnerável, a entrada maliciosa poderá alcançar o componente afetado. Entretanto, a exposição depende de como cada aplicação utiliza o Brotli, e a possibilidade de exploração remota não significa que qualquer servidor com a biblioteca instalada esteja automaticamente vulnerável.

cisa-confirma-que-o-ambiente-da-sua-ferramenta-de-avaliacao-de-seguranca-quimica-csat-foi-comprometido-em-janeiro
Falha crítica no Brotli: CISA alerta para ataques ativos 3

Execução remota de código, vazamento de memória e negação de serviço

A gravidade da falha está na variedade de impactos possíveis. O primeiro é a negação de serviço (DoS). Uma entrada malformada pode interromper o processo que realiza a descompressão, derrubar uma aplicação ou prejudicar a disponibilidade de um serviço. Em ambientes com reinicialização automática, o problema pode se repetir e comprometer a estabilidade da infraestrutura.

Outro risco é o vazamento de informações da memória. Caso a corrupção permita expor dados de regiões adjacentes, informações presentes no processo poderão ficar acessíveis indevidamente. Dependendo da aplicação, isso pode incluir fragmentos de conteúdo processado, dados temporários ou informações sensíveis mantidas em memória.

O cenário mais grave é a execução remota de código (RCE), que pode permitir a execução de instruções arbitrárias no contexto do processo vulnerável. Pesquisadores demonstraram a gravidade potencial do problema em ambientes de teste, mas a exploração confiável depende de fatores técnicos específicos. Não se deve tratar a RCE como resultado garantido em todas as configurações.

A vulnerabilidade também é conhecida pelos nomes Broccoli2Shell e HTTP2Shell. Independentemente da nomenclatura, o ponto central é o mesmo: entradas Brotli especialmente construídas podem explorar uma falha no decodificador e comprometer a segurança de aplicações que processam esses dados.

Por que a inclusão no catálogo KEV da CISA importa

O catálogo Known Exploited Vulnerabilities (KEV) da CISA reúne vulnerabilidades para as quais existem evidências de exploração. A inclusão da CVE-2026-111497 representa um sinal importante para equipes de resposta a incidentes, administradores e responsáveis pela gestão de riscos.

Relatos recentes também apontam tentativas de exploração observadas em sistemas de monitoramento e honeypots. Isso reforça a necessidade de verificar os ambientes expostos, embora seja importante distinguir tentativas registradas de comprometimentos confirmados em produção.

Para organizações sujeitas às determinações da CISA, a inclusão no KEV pode gerar obrigações específicas de correção dentro dos prazos aplicáveis. Para empresas brasileiras e administradores independentes, o catálogo funciona como um indicador relevante de prioridade, mas os prazos regulatórios norte-americanos não devem ser interpretados automaticamente como obrigações legais locais.

Ambientes em risco: do Node.js a serviços de nuvem

O Node.js está entre os principais componentes afetados porque incorpora o Brotli em suas funcionalidades de compressão e descompressão. Aplicações que utilizam o módulo node:zlib, especialmente as funções brotliDecompress() e createBrotliDecompress(), precisam de atenção quando processam entradas não confiáveis.

O risco também pode aparecer em fluxos de comunicação que utilizam fetch(). O Node.js pode descompactar automaticamente respostas HTTP recebidas de outros servidores, o que exige cuidado com a confiança depositada em serviços externos, APIs, webhooks e sistemas intermediários.

Isso não significa que todo servidor Node.js esteja exposto da mesma forma. Um servidor HTTP básico não descompacta automaticamente qualquer corpo de requisição Brotli. O cenário depende da aplicação, de seus middlewares e das bibliotecas responsáveis pelo processamento do conteúdo.

O ecossistema .NET também exige verificação. Aplicações que utilizam componentes como BrotliStream e BrotliDecoder podem estar vulneráveis quando processam dados controlados por terceiros. A Microsoft publicou atualizações para versões compatíveis do ambiente, tornando essencial conferir os pacotes e os runtimes efetivamente utilizados em produção.

Outros projetos e componentes que incorporam o Brotli também merecem avaliação, incluindo Bun, bibliotecas Python, proxies Envoy, ambientes Istio e aplicações que utilizam bibliotecas nativas de descompressão. O impacto varia conforme a versão, a implementação e a configuração. A existência de uma dependência não significa, isoladamente, que o caminho vulnerável esteja acessível a um atacante.

Linux e contêineres Docker exigem atenção especial

Em servidores Linux, a investigação precisa abranger tanto os pacotes do sistema operacional quanto os componentes incorporados diretamente às aplicações. Distribuições que fornecem bibliotecas compartilhadas podem disponibilizar correções por meio de atualizações de segurança, enquanto softwares que incluem cópias próprias do Brotli exigem atualizações específicas.

Esse detalhe é especialmente importante em ambientes com Docker, Kubernetes e pipelines de integração e entrega contínuas (CI/CD). Uma imagem de contêiner pode continuar utilizando uma biblioteca vulnerável mesmo depois que o sistema operacional do host foi atualizado.

Além disso, atualizar um pacote no host não modifica automaticamente as dependências já incorporadas a imagens existentes. Contêineres em execução também podem continuar utilizando arquivos antigos até que sejam substituídos ou reiniciados conforme o procedimento de implantação.

Administradores devem identificar serviços que recebem dados de fontes externas, aplicações que descompactam conteúdo automaticamente e componentes compartilhados entre diferentes sistemas. A prioridade deve recair sobre os serviços expostos à internet e sobre aqueles que processam entradas não confiáveis.

Ações urgentes e guia de mitigação para administradores

A resposta mais segura é aplicar as atualizações oficiais dos fornecedores e eliminar as versões vulneráveis de todas as instâncias utilizadas. Medidas temporárias de rede ajudam a reduzir a exposição, mas não substituem a correção do componente.

1. Atualize o Node.js e suas dependências

O projeto Node.js disponibilizou versões corrigidas nas linhas de lançamento compatíveis:

  • Node.js 22.23.4 ou posterior;
  • Node.js 24.22.1 ou posterior;
  • Node.js 26.12.1 ou posterior.

Essas versões corrigem a falha nos respectivos ramos. Sistemas que utilizam linhas antigas sem suporte, como Node.js 20, 23 e 25, devem migrar para uma versão mantida que receba as correções de segurança.

Verifique a versão instalada:

node --version

Depois, identifique a versão utilizada por cada serviço, tarefa agendada e pipeline de implantação. Não presuma que a versão exibida no terminal seja a mesma executada por um processo gerenciado pelo systemd, PM2, Docker ou Kubernetes.

Também é necessário atualizar dependências que incorporam o Brotli, em vez de depender exclusivamente da atualização global do Node.js.

2. Atualize o Brotli e os componentes de terceiros

As versões corrigidas da biblioteca Brotli incluem 1.0.10, 1.1.1 e 1.2.1, correspondentes às respectivas linhas de lançamento.

Em sistemas Debian e Ubuntu, verifique os pacotes instalados e aplique as atualizações disponibilizadas pelos mantenedores:

sudo apt update
sudo apt upgrade

Em distribuições baseadas em RPM, utilize o gerenciador de pacotes recomendado pelo fornecedor e confirme se o pacote corrigido já está disponível para a versão do sistema em uso.

O mesmo princípio vale para .NET, Bun, bibliotecas Python e proxies de infraestrutura. No .NET, confira as versões corrigidas dos runtimes compatíveis, incluindo 8.0.33, 9.0.22 e 10.0.14, e valide se a aplicação realmente está executando o runtime atualizado.

Após a atualização, reinicie os serviços afetados e confirme que os processos antigos foram encerrados. A instalação de um pacote corrigido não garante, por si só, que um processo em execução deixou de carregar a biblioteca vulnerável.

3. Desative temporariamente a descompressão de dados não confiáveis

Quando não for possível aplicar o patch imediatamente, reduza a superfície de ataque. Se a aplicação não precisar receber corpos de requisição comprimidos com Brotli, configure o middleware para rejeitar esse tipo de entrada.

No caso do body-parser, por exemplo, a opção inflate: false pode impedir a aceitação de corpos comprimidos por esse mecanismo. A configuração deve ser validada conforme a arquitetura da aplicação, pois outros componentes podem realizar a descompressão independentemente.

Em proxies reversos, balanceadores e gateways, avalie a possibilidade de rejeitar requisições com Content-Encoding: br quando esse formato não for necessário. A regra precisa ser aplicada no ponto em que a entrada seria processada, e não apenas no componente que entrega respostas comprimidas.

Desativar a compressão Brotli das respostas não é necessariamente suficiente. O risco está principalmente na descompressão de conteúdo malicioso, que pode ocorrer em caminhos diferentes do envio de páginas comprimidas aos clientes.

4. Reconstrua as imagens de contêiner

Depois de corrigir as dependências, reconstrua as imagens Docker a partir de bases atualizadas e publique novas versões nos ambientes de produção.

Evite simplesmente reiniciar contêineres criados a partir de imagens antigas. Um novo processo iniciado dentro da mesma imagem vulnerável continuará utilizando os componentes desatualizados.

No Kubernetes, atualize as imagens referenciadas pelos deployments e confirme se os novos pods foram efetivamente implantados. Verifique também os workers, serviços auxiliares e tarefas executadas fora do fluxo principal da aplicação.

Para reduzir o risco de recorrência, incorpore a verificação de versões vulneráveis aos processos de análise de dependências e varredura de imagens.

5. Revise os registros e procure sinais de exploração

Equipes de segurança devem revisar logs de proxies, gateways, aplicações e sistemas de detecção em busca de entradas Brotli malformadas, erros de descompressão, encerramentos inesperados de processos e padrões anormais de requisições.

Também é importante observar conexões de saída incomuns, alterações inesperadas em arquivos e processos desconhecidos nos serviços potencialmente expostos. Esses sinais não comprovam isoladamente a exploração da Node2Shell, mas podem justificar uma investigação mais aprofundada.

Se houver evidências de comprometimento, preserve os registros, isole o sistema conforme o plano de resposta a incidentes e avalie a exposição de credenciais e segredos acessíveis ao processo afetado. A aplicação do patch corrige a vulnerabilidade, mas não remove automaticamente uma eventual persistência instalada durante um ataque anterior.

Conclusão: prioridade máxima na defesa de borda e aplicações

A Node2Shell (CVE-2026-111497) demonstra como uma falha em um componente aparentemente simples pode afetar diferentes camadas da infraestrutura. A presença do Brotli em aplicações Node.js, runtimes .NET, bibliotecas nativas e ambientes de contêiner amplia a necessidade de uma investigação que vá além da atualização isolada de um servidor.

A inclusão no catálogo KEV da CISA e os relatos de tentativas de exploração tornam a correção uma prioridade para sistemas expostos. Administradores devem identificar todas as implementações vulneráveis, aplicar os patches disponíveis, reconstruir imagens de contêiner e restringir temporariamente a descompressão de dados não confiáveis quando necessário.

O trabalho não termina com a atualização. É fundamental confirmar quais versões estão efetivamente em execução, revisar os registros e incorporar verificações de dependências ao ciclo de desenvolvimento.

QUEM ESCREVE
Jardeson Márcio

Sobre o autor

Jardeson Márcio é Jornalista e Mestre em Tecnologia Agroalimentar pela Universidade Federal da Paraíba. Com 8 anos de experiência escrevendo no SempreUpdate, Jardeson é um especialista em Android, Apple, Cibersegurança e diversos outros temas do universo tecnológico. Seu foco é trazer análises aprofundadas, notícias e guias práticos sobre segurança digital, mobilidade, sistemas operacionais e as últimas inovações que moldam o cenário da tecnologia.