Voltar
Broccoli2shell: tudo o que você precisa saber sobre a vulnerabilidade crítica no decoder do Brotli

Falha crítica no decoder do Brotli, batizada de Broccoli2Shell, permite execução remota de código em Node.js, Bun e Envoy Proxy

Aprofundamento CEVIU

Aprofundamento

A CVE-2026-111497, apelidada de Broccoli2Shell (também chamada de Node2Shell e HTTP2Shell), nasce de uma escrita fora dos limites (out-of-bounds write) no decoder Brotli. O erro acontece quando o decoder trata dados comprimidos especialmente forjados durante o processamento de blocos, e pode gravar além da memória alocada. O resultado possível vai de vazamento de memória e queda do processo até execução arbitrária de código, com os privilégios do processo afetado. Pesquisadores já demonstraram exploração contra ambientes Node.js sem correção.

Apesar do nome associado ao Node.js, a falha está no decoder C do Brotli, a camada upstream. Por isso ela se estende a Bun, Envoy Proxy, Istio e pacotes Python, além de qualquer produto que embuta ou faça link estático com versões vulneráveis. Para explorar, basta que a aplicação ou uma dependência descomprima conteúdo Brotli controlado pelo atacante: requisições HTTP de entrada, respostas buscadas externamente ou arquivos enviados. Alguns clientes HTTP e frameworks descomprimem sozinhos quando o suporte a Brotli está ligado, então o código da aplicação pode nem mencionar Brotli e ainda assim estar exposto.

Os dados da Wiz mostram a escala: 91% dos ambientes de nuvem têm recursos vulneráveis e 82% têm instâncias Node.js expostas publicamente. A orientação inclui atualizar runtimes e bibliotecas, inventariar VMs, clusters, contêineres, funções serverless e gateways, e olhar dependências transitivas. Também pede rebuild e redeploy de imagens (base images, lockfiles, bibliotecas embutidas), reinício dos processos e verificação de que os componentes corrigidos foram de fato carregados. Como mitigação temporária, desabilitar a descompressão Brotli ou rejeitar requisições com esse encoding antes que cheguem ao componente vulnerável reduz a exposição, mas não substitui o patch. Branches de runtime em fim de vida precisam migrar para versões suportadas.

O que mudou

Em 22 de outubro de 2026, o CEVIU noticiou "Node.js lança correções de segurança para as linhas 26.x, 24.x e 22.x, incluindo falha alta de RCE no decoder Brotli". Naquele momento, a falha aparecia como um item de severidade alta dentro de um pacote de atualizações do Node.js. Agora ela ganhou CVE, nome próprio (Broccoli2Shell), classificação crítica e escopo ampliado, com Bun, Envoy Proxy e Istio na lista de afetados, além da métrica da Wiz sobre a exposição em nuvem.

Por que isso importa

Para quem opera plataforma, isso sugere que atualizar só o Node.js não fecha o problema. O risco está numa biblioteca que entra por baixo de runtimes, proxies e service mesh, então vale tratar como caso de inventário de dependências e não como patch pontual. Na prática, o trabalho pesado costuma estar no rebuild das imagens e na confirmação de que o processo em execução carrega a versão corrigida. Desligar Brotli na borda pode comprar tempo enquanto a esteira roda.

Linha do tempo

  1. Node.js lança correções para as linhas 26.x, 24.x e 22.x, incluindo falha alta de RCE no decoder Brotli.

  2. Wiz detalha a CVE-2026-111497 (Broccoli2Shell), crítica, afetando Node.js, Bun e Envoy Proxy.

Perguntas frequentes

O que é a Broccoli2Shell (CVE-2026-111497)?

É uma vulnerabilidade crítica de escrita fora dos limites no decoder Brotli. Um atacante remoto sem autenticação pode corromper memória, vazar informações, derrubar o processo ou, potencialmente, executar código. Também aparece com os nomes Node2Shell e HTTP2Shell.

Quais tecnologias são afetadas?

Node.js, Bun, Envoy Proxy, Istio e pacotes Python estão na lista de componentes a atualizar. A falha vem do decoder C do Brotli, então outros produtos que embutem ou linkam essa biblioteca também podem ser afetados. Vale consultar os avisos de cada fornecedor, principalmente em bibliotecas estáticas.

Minha aplicação está exposta se não uso Brotli no código?

Pode estar. Alguns clientes HTTP e frameworks descomprimem Brotli automaticamente quando o suporte está habilitado. O risco existe quando algum componente descomprime dados controlados por um atacante, inclusive via dependências transitivas.

O que fazer se não der para aplicar o patch agora?

Considere desabilitar a descompressão Brotli ou rejeitar requisições com esse encoding antes que cheguem ao componente vulnerável. Restrinja respostas comprimidas de fontes não confiáveis quando possível e monitore logs de WAF, aplicação e rede. Isso reduz a exposição, mas não substitui a atualização.

Fontes

Avalie este artigo:
Categoria
CEVIU DevOps
Publicado
26 de outubro de 2026
Editoria
CEVIU DevOps

Quer receber mais sobre CEVIU DevOps?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser