HTTP2Shell não é um bug do HTTP/2, e é isso que assusta
A falha que atinge o Node.js e, segundo relatos, o Python está em um decodificador Brotli, não no HTTP/2. É uma lição sobre código compartilhado que ninguém audita e sobre atualizar como trabalho de emergência.
Foto: VIA Gallery from Hsintien, Taiwan / Wikimedia Commons (CC BY 2.0)
Sua equipe provavelmente tem uma lista dos frameworks de que depende. E uma lista dos descompressores? HTTP2Shell é um dos nomes associados agora a uma falha de execução remota de código que atinge o Node.js e, segundo relatos, bibliotecas Python. Apesar do nome, o protocolo não é o culpado. O problema é um decodificador de compressão.
O bug está no descompressor, não no protocolo
Como explica a Brandefense, trata-se de uma única falha, a CVE-2026-111497, no decodificador Brotli que acompanha o Node.js. Ela foi chamada primeiro de Node2Shell e, desde o fim de 23 de outubro (UTC), também de HTTP2Shell. O Node.js a corrigiu em 21 de outubro de 2026 nas versões 22.23.4, 24.22.1 e 26.12.1. O registro da CVE a classifica com 9,2 no CVSS 4.0. O aviso atribui o relato ao OpenAI Codex Security.
A Aikido afirma que a mesma falha do Brotli afeta muitas bibliotecas e aplicativos que usam HTTP com Brotli ou brotlicffi instalado. A execução remota de código na imagem oficial do Node.js 24.22.0 é, por ora, o que pesquisadores relataram. A Aikido apresenta isso como um relato, não como teste próprio, e acrescenta que o exploit não funcionou todas as vezes. Segundo relatos, o código de prova de conceito público derruba o Node.js sem correção, mas nenhuma RCE funcional foi demonstrada em código público. Na nossa avaliação, essa distinção muda o tom com que se deve descrever a falha. Não muda a rapidez com que se deve atualizar.
O nome errado aponta para a camada errada
Chamar de HTTP2Shell é compreensível. A falha aparece no caminho HTTP, e o nome pega. Mas ele leva as pessoas à camada errada. Ninguém deveria sair procurando uma configuração do HTTP/2 para desativar.
O passo a passo da Brandefense, que repete a explicação da Vercel, mostra como a exposição é comum. O Node.js não decodifica Brotli por conta própria. Um aplicativo fica exposto quando o próprio código, ou uma biblioteca que ele usa, descomprime dados Brotli controlados por um invasor. O pesquisador Ron Masas escreveu no X que, em um runtime vulnerável, "app.use(express.json) basta". A Brandefense diz que isso confere com o que o código-fonte do Express 5 faz. Uma requisição JSON com codificação de conteúdo Brotli é decodificada antes de o código das suas rotas rodar.
Essa é a parte incômoda. Em muitas equipes, suspeitamos, ninguém escreveu um recurso de Brotli e ninguém revisou um. A exposição chegou como comportamento padrão de algo que você escolheu. E a Brandefense observa que outros middlewares, frameworks, proxies reversos e o seu próprio código também podem decodificar Brotli. Cada um deles é um lugar a verificar.
Atualizar tem de virar trabalho de infraestrutura, não ticket de sprint
A cronologia é o argumento. O Node.js lançou as correções às 10h38 UTC de 21 de outubro. Segundo a Brandefense, o primeiro repositório do GitHub para a CVE apareceu cerca de cinco horas depois, e no fim de 23 de outubro uma busca retornava 25. Na nossa avaliação, os defensores não têm período de carência quando os patches podem ser comparados com o código antigo.
No mesmo dia, o PHP lançou correções próprias para as falhas separadas do PHP2Shell. A equipe de segurança da Universidade de Toronto alerta que se espera exploração em massa em breve e que a Cloudflare já havia relatado ataques iniciais. Não queremos fundir dois bugs sem relação em uma só história. Mas duas falhas críticas de runtime chegando juntas é o que uma semana ruim parece quando tanta coisa roda em um punhado de runtimes compartilhados.
Há uma segunda lição, sobre software em fim de vida. A Brandefense cita a Vercel dizendo que o Node.js 20 "não receberá esta correção". Equipes paradas em um runtime sem suporte não estão um patch atrás. Não têm patch nenhum para aplicar. É uma decisão orçamentária tomada meses atrás que vence em um fim de semana.
A Wiz argumenta, em sua análise do PHP2Shell, que modelos de IA de fronteira permitiram desenvolver e adaptar exploits funcionais em horas. Trataríamos isso como uma afirmação a levar a sério, não como fato consolidado. Se for confirmada, enfraquece-se o velho consolo de que uma falha é complexa demais para alguém explorá-la.
Tarefa de segunda-feira: inventariar, atualizar, definir um responsável
Nossa recomendação é simples. Confira suas versões com node --version e encontre todos os pontos em que seu código ou uma dependência descomprime Brotli vindo de fora. Atualize para as versões corrigidas e saia do Node.js 20. Não execute código de prova de conceito do GitHub fora de um laboratório isolado, porque código de exploit de contas desconhecidas pode esconder malware.
A mudança maior é organizacional. Atualizações de runtime e de bibliotecas não deveriam esperar no backlog atrás do trabalho de funcionalidades. Devem ter um responsável, um inventário e um prazo dentro da mesma semana. Uma falha como esta não será a última, e achamos que as equipes que a tratarem como manutenção rotineira de infraestrutura serão as que mal notarão a próxima.
Ainda não há temas: abra o primeiro.
Mais matérias
Bitcoin Core tem razão: quando uma IA acha a falha, o sigilo é puro teatro
O Bitcoin Core vai corrigir e divulgar rapidamente bugs fáceis de redescobrir, porque a lógica do embargo supunha que eram difíceis de achar, e a IA acaba com essa premissa.
iPhone “inhackeável” é um slogan, não um modelo de segurança
Uma demonstração pública de invasão do iPhone e um novo patch contra um zero-day mostram que a fama de segurança da Apple vem de ataques constantes e correções rápidas, não de invulnerabilidade.
Bancos têm razão em bloquear agentes de IA, mas muros não são um plano
Barrar agentes de IA não verificados é defensável enquanto faltam regras de identidade, consentimento e responsabilidade, mas os bancos precisam criar um caminho de acesso autorizado.
Achar falhas é barato: os 1.000 terceirizados do Bank of America mostram quem paga
A IA no estilo Mythos tornou abundante a descoberta de vulnerabilidades. A conta real é o trabalho humano de corrigir o que ela encontra, e os bancos são os primeiros a recebê-la.



