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.

Tabela de conteúdos
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.
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.

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
- Atualize o Node.js para a release corrigida da sua linha suportada e valide a versão em produção.
- Mapeie imagens Docker, funções serverless e demais artefatos que embutem o binário do Node.js.
- Revise rotas com Express 5, body-parser ou descompressão explícita de corpo de requisição.
- Audite chamadas
fetch()que consumam respostas Brotli de servidores externos não confiáveis. - 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.
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.
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.
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.
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.

