NoticiasInteligência ArtificialTecnologia

Node2Shell: falha Brotli ameaça apps Node.js

A Node2Shell, identificada como CVE-2026-111497, é uma falha no decodificador Brotli incluído no Node.js que pode levar à execução remota de código (RCE) quando uma aplicação processa dados comprimidos e não confiáveis. Segundo a demonstração da Imperva, o cenário atingiu uma imagem oficial do Node.js 24.22.0 para Linux arm64. O projeto Node.js publicou correções em 21 de outubro de 2026; quem decodifica Brotli deve atualizar o runtime e os artefatos que o incorporam.

Node2Shell expõe falha Brotli e risco de RCE no Node.js
Demonstração visual associada ao relato técnico da vulnerabilidade Node2Shell.

Resposta rápida

A prioridade é atualizar o Node.js para uma versão corrigida no ramo 24, a fonte aponta a 24.22.1. Não há workaround interno equivalente ao patch; filtros de tráfego reduzem exposição, mas não substituem a correção.

Quais aplicações podem ser afetadas

A superfície de ataque surge quando o processo chama o decodificador Brotli. Isso pode ocorrer ao receber um corpo de requisição comprimido por middleware ou ao ler uma resposta HTTP Brotli via fetch() nativo. As linhas 22.x, 24.x e 26.x foram citadas como afetadas. Um servidor HTTP puro não descompacta Brotli apenas por receber a requisição: é necessário middleware ou uma chamada explícita de decodificação.

PUBLICIDADE

No Express 5, parsers como express.json(), express.urlencoded(), express.text() e express.raw() podem tratar Brotli nas rotas em que estão aplicados. A Imperva relatou testes com Express 5.0.0 a 5.3.0 e body-parser 2.0.0 a 2.3.0, sem afirmar cobertura de todas as versões intermediárias.

Como a falha Node2Shell funciona

De acordo com a análise técnica, dados Brotli especialmente construídos levam o decodificador a um estado inválido durante uma mudança de bloco. Em vez de encerrar com erro de formato, a implementação vulnerável pode continuar o processamento. Em teste com sanitizador de memória, pesquisadores observaram uma escrita fora dos limites do buffer — condição que pode abrir caminho para RCE em circunstâncias específicas.

Registro técnico da condição vulnerável no decodificador Brotli do Node.js
Imagem técnica do relatório mostra a condição de processamento vulnerável.

O proof of concept não teve sucesso em todas as tentativas e foi demonstrado em uma configuração Linux arm64. Isso não prova exploração universal, mas justifica atualização imediata dos ambientes expostos.

O que equipes devem fazer agora

  1. Atualize o Node.js para a release corrigida da sua linha suportada e valide a versão em produção.
  2. Mapeie imagens Docker, funções serverless e demais artefatos que embutem o binário do Node.js.
  3. Revise rotas com Express 5, body-parser ou descompressão explícita de corpo de requisição.
  4. Audite chamadas fetch() que consumam respostas Brotli de servidores externos não confiáveis.
  5. Enquanto a atualização não chega, limite tráfego Brotli não confiável nas rotas expostas, quando operacionalmente viável.

Linhas 20.x e anteriores, em fim de vida, não recebem esse patch e devem ser migradas. A Vercel informou ter aplicado regras para bloquear o vetor em requisições de entrada, mas essa proteção não cobre respostas Brotli buscadas pela própria aplicação. Também não há relato de exploração ativa na fonte consultada até 22 de outubro de 2026.

Fontes e limites da informação

Esta notícia se baseia no relato publicado pelo The Hacker News e nas referências técnicas indicadas: pesquisa da Imperva, boletim de segurança do Node.js e documentação do Express.

  1. O que é a vulnerabilidade Node2Shell?

    É uma falha no decodificador Brotli do Node.js. Dados malformados podem causar processamento inválido e, em cenário demonstrado, execução remota de código. A identificação citada é CVE-2026-111497.

  2. Quais versões do Node.js exigem atenção?

    As linhas 22.x, 24.x e 26.x foram apontadas como afetadas. No ramo 24, a fonte informa que a versão 24.22.1 rejeita os dados usados no teste. Confirme o boletim oficial da sua release.

  3. Express 5 é vulnerável por padrão?

    Não necessariamente. O risco depende de a rota decodificar corpos Brotli, por exemplo com parsers do Express. Um servidor HTTP puro não faz essa descompressão automaticamente.

  4. Um WAF resolve a falha do Brotli?

    Não por completo. Regras de WAF podem reduzir a exposição de requisições maliciosas, mas não substituem atualizar o runtime nem protegem todo o fluxo de respostas externas.

Considerações finais

A Node2Shell reforça que bibliotecas embutidas no runtime também fazem parte da superfície de ataque. Atualizar o Node.js, localizar imagens de contêiner antigas e revisar pontos que decodificam Brotli são medidas objetivas para reduzir o risco da CVE-2026-111497 sem depender apenas de controles compensatórios.

Diogo Fernando

Apaixonado por tecnologia e cultura pop, programo para resolver problemas e transformar vidas. Empreendedor e geek, busco novas ideias e desafios. Acredito na tecnologia como superpoder do século XXI.