Para quem é este artigo: desenvolvedores e operadores que rodam serviços web, APIs, crawlers ou jobs em lote com Node.js, Bun, Python ou .NET. Este artigo se baseia em informações públicas do projeto Brotli do Google, do Node.js, da Microsoft, do PyPI, do JPCERT/CC e de fontes do governo dos EUA. Ele não trata de etapas de ataque nem de código de exploit.
Em andamento: esta página será atualizada conforme novas informações forem publicadas
Às 23:00 UTC de 26 de outubro de 2026Ainda não se sabe
- Se está sendo explorada (nenhuma fonte primária relata)
- A avaliação própria do NVD (aguardando análise)
- A lista completa de produtos afetados
- Algumas distribuições Linux (versões mais antigas ainda não avaliadas)
O Google publicou as correções em 21 de outubro (horário dos EUA), o Node.js no mesmo dia e a Microsoft em 25 de outubro (horário dos EUA). O JPCERT/CC emitiu um alerta em 26 de outubro. O catálogo KEV da CISA não lista a falha. Mais fornecedores ainda estão lançando correções, então esta página será atualizada conforme eles publicarem.
O que fazer hoje
Verifique se você descomprime dados Brotli vindos de fora
Exemplos são um servidor web que descomprime requisições enviadas com Content-Encoding: br, um cliente HTTP que descomprime automaticamente respostas de sites externos e código que descomprime arquivos enviados por usuários. Se algum desses casos se aplica, trate como urgente (visão deste site).
Verifique as versões dos seus runtimes e pacotes
Use os comandos de "Como verificar se você é afetado", mais abaixo, para verificar o Node.js, o Bun, os pacotes do Python e o runtime e o SDK do .NET.
Atualize para uma versão corrigida
Atualize pelo menos para as versões de "Versões corrigidas", mais abaixo. As builds oficiais do nodejs.org do Node.js 20.x e anteriores estão fora de suporte e não recebem correção, então migre para 22.x ou posterior. Para o Node.js instalado a partir de pacotes do Ubuntu ou do Debian, siga o aviso de segurança da distribuição.
Reconstrua, reimplante e reinicie
Reconstrua com as versões corrigidas as imagens de contêiner, os executáveis gerados com bun build --compile e os apps .NET autocontidos ou NativeAOT, e reimplante-os. Reinicie também os processos em execução: um processo antigo mantém a biblioteca antiga carregada.
Procure sinais de comprometimento
O JPCERT/CC pede aos usuários que, além de aplicar as correções, verifiquem se houve comprometimento. Procure aumento de travamentos, processos filhos desconhecidos ou conexões de saída nos processos que descomprimem dados vindos de fora (sugestão deste site).
Corrija as versões fixadas em lockfiles e imagens base
Se package-lock.json, requirements.txt, poetry.lock ou a linha FROM de um Dockerfile fixa uma versão antiga, o próximo build vai trazê-la de volta. Altere as versões fixadas para versões corrigidas.
Versões corrigidas
| O que você usa | Afetado | Corrigido em | Fonte |
|---|---|---|---|
| Brotli (biblioteca C) | 1.0.3–1.0.9, 1.1.0, 1.2.0 | 1.0.10, 1.1.1, 1.2.1 | |
| Node.js 22.x | anterior a 22.23.4 | 22.23.4 | Node.js |
| Node.js 24.x | anterior a 24.22.1 | 24.22.1 | Node.js |
| Node.js 26.x | anterior a 26.12.1 | 26.12.1 | Node.js |
| Node.js 20.x e anteriores (builds oficiais do nodejs.org) | fim de suporte | nenhuma (migre para 22.x ou posterior) | Node.js |
| Bun | de 1.0.21 até antes de 1.4.4 | 1.4.4 | Bun |
| brotli do PyPI | de 1.0.3 até antes de 1.2.1 | 1.2.1 | GitHub Advisory Database |
| brotlicffi do PyPI | de 1.0.3 até antes de 1.2.1.0 | 1.2.1.0 | GitHub Advisory Database |
| .NET 8 | anterior a 8.0.33 | runtime 8.0.33 (SDK 8.0.133, 8.0.427) | Microsoft |
| .NET 9 | anterior a 9.0.22 | runtime 9.0.22 (SDK 9.0.123, 9.0.320) | Microsoft |
| .NET 10 | anterior a 10.0.14 | runtime 10.0.14 (SDK 10.0.114, 10.0.403) | Microsoft |
| Envoy | v1.39.2, v1.38.5, v1.37.7, v1.36.11 | v1.40.0, v1.39.3, v1.38.6, v1.37.8, v1.36.12 | Envoy |
| Builds do PHP para Windows | 8.5.12, 8.4.27, 8.3.36, 8.2.35 antes da recompilação | 8.5.12-1, 8.4.27-1, 8.3.36-1, 8.2.35-1 | PHP |
O .NET Framework não é afetado (Microsoft). Também há correção para as versões prévias do .NET 11 (11.0.0-rc.3.26522.148). Segundo o Envoy, só são afetadas as implantações que têm o descompressor Brotli configurado.
Distribuições Linux costumam aplicar a correção por backport sem alterar o número da versão original. Por exemplo, o brotli do Ubuntu 22.04 é corrigido em "1.0.9-2ubuntu0.1", que ainda diz 1.0.9. Para pacotes do sistema operacional, guie-se pelo aviso de segurança da sua distribuição, não apenas pelo número da versão.
Segundo a equipe do PHP, as builds do PHP para Windows ficam expostas pela extensão cURL quando a descompressão automática de respostas HTTP está habilitada (ela vem desativada por padrão no cURL, mas aplicações e bibliotecas de cliente HTTP podem ativá-la). As builds corrigidas têm o sufixo "-1"; a versão do PHP em si não muda.
Biblioteca do sistema operacional (libbrotli)
Corrigida pelas atualizações do sistema. Reinicie os processos que a usam
Embutida em um runtime (Node.js, Bun, .NET)
Atualize o próprio runtime
Pacotes de linguagem (brotli, brotlicffi)
Atualize em cada ambiente virtual
O que você gerou (contêineres, executáveis)
Reconstrua com versões corrigidas e reimplante
Como verificar se você é afetado
Estes comandos apenas verificam versões nos seus próprios sistemas.
Node.js
Execute node -v. Versões anteriores a 22.23.4, 24.22.1 ou 26.12.1 são afetadas. node -p process.versions.brotli mostra a versão do Brotli embutida, mas, dependendo de como a correção é aplicada, esse número pode não mudar, então decida pela versão do Node.js em si (visão deste site). No Docker, verifique dentro da imagem, por exemplo com docker run --rm --entrypoint node <image> -v. O Node.js instalado a partir de pacotes do Ubuntu ou do Debian usa a libbrotli do sistema, então verifique-o como descrito em "Bibliotecas do sistema operacional", mais abaixo.
Bun
Execute bun --version. Versões anteriores a 1.4.4 são afetadas. Executáveis gerados com bun build --compile incluem o Bun com que foram gerados e continuam afetados até serem reconstruídos (aviso do Bun).
Python
Execute pip show brotli brotlicffi (ou procure Brotli e brotlicffi em python -m pip list). São afetados o brotli anterior a 1.2.1 e o brotlicffi anterior a 1.2.1.0. Se nenhum dos dois estiver instalado, não há pacote do Python a corrigir para esta falha. Cada ambiente virtual e cada contêiner tem a própria cópia, então verifique cada um. Se ele veio de um pacote do sistema operacional como python3-brotli, guie-se pelo aviso de segurança da sua distribuição, não pelo número da versão.
.NET
Execute dotnet --list-runtimes e dotnet --list-sdks. A Microsoft diz que você está exposto se habilitou o Brotli na descompressão de requisições do ASP.NET Core ou na descompressão automática de respostas do HttpClient, ou se chama BrotliStream ou BrotliDecoder diretamente. Nenhuma das duas opções automáticas vem ativada por padrão.
Bibliotecas do sistema operacional
Verifique a versão instalada com dpkg -l 'libbrotli*' no Debian e no Ubuntu, rpm -qa 'brotli*' 'libbrotli*' em sistemas baseados em RHEL ou apk list --installed 'brotli*' no Alpine, e compare com o aviso de segurança da sua distribuição. O Debian corrigiu o Debian 12 em 1.0.9-2+deb12u1 (DLA-4855-1) e o Debian 13 em 1.1.0-2+deb13u1 (DSA-6582-1).
O que foi divulgado
- CVE
- CVE-2026-111497 (aviso do GitHub GHSA-9v8h-qqgm-4m35)
- Tipo
- Escrita fora dos limites (CWE-787) e valor de retorno não verificado (CWE-252) no decodificador Brotli (c/dec/decode.c)
- Gravidade
- CVSS v4.0 9,2 (Google). Vetor de ataque de rede, sem autenticação, sem interação do usuário, com requisitos de ataque (AT:P). A Microsoft dá nota 8,1 no CVSS v3.1 ao problema no .NET
- Impacto
- Descomprimir um fluxo Brotli manipulado pode corromper a memória adjacente, expor conteúdo da memória, causar negação de serviço ou, potencialmente, permitir a execução de código arbitrário (descrição do Google no NVD). Para o .NET, a Microsoft diz que pode levar a divulgação de informações, negação de serviço ou elevação de privilégio (não menciona execução de código)
- Afetado
- Brotli 1.0.3–1.0.9, 1.1.0 e 1.2.0, e produtos que o embutem
- Corrigido
- Brotli 1.0.10, 1.1.1, 1.2.1 (21 de outubro de 2026, horário dos EUA)
- Contorno
- O Google não oferece nenhum (JPCERT/CC). A Microsoft diz para evitar descomprimir dados Brotli controlados por um atacante até poder atualizar
Segundo o Node.js, o decodificador tratava uma troca de bloco inválida em dados malformados como uma necessidade temporária de mais entrada, e não como um erro de formato, e por isso continuava escrevendo além do fim de um buffer interno de oito bytes. No Node.js, são afetadas as aplicações que descomprimem com node:zlib dados Brotli fornecidos por um atacante. O Node.js classifica o problema como High (alto). Os mesmos lançamentos corrigem outras nove vulnerabilidades.
Segundo o aviso do Bun, o fetch do Bun descomprime automaticamente respostas Brotli por padrão, então o servidor ao qual uma aplicação se conecta, ou um atacante no caminho de uma conexão não criptografada, pode fornecer os dados.
Só uma atualização do sistema operacional pode não resolver
O Brotli é embutido como cópia em muitos programas, incluindo Node.js, Bun, os pacotes Brotli do Python, .NET e Envoy. O JPCERT/CC pede aos usuários cujas aplicações descomprimem dados Brotli que consultem as informações mais recentes de cada fornecedor sobre impacto e status das correções. A Microsoft também diz que atualizar o runtime compartilhado não corrige apps NativeAOT; eles precisam ser republicados.
Situação da exploração e da prova de conceito
Na manhã de 27 de outubro (horário do Japão), Google, Node.js, Microsoft e JPCERT/CC não relatam exploração real. O catálogo KEV da CISA (versão de 26 de outubro) não lista a falha. A avaliação SSVC da CISA adicionada ao NVD em 23 de outubro classifica a exploração como nenhuma, a automatização como não e o impacto técnico como total. O CVSS da Microsoft classifica a maturidade do código de exploração como não comprovada.
As fontes primárias não mencionam uma prova de conceito pública. Um site explicativo independente diz que uma foi publicada em 22 de outubro: em builds padrão ela só causa um travamento e uma leitura limitada de memória, enquanto em uma build deliberadamente enfraquecida chega à execução de código. O mesmo site diz que a equipe de pesquisa de uma empresa de segurança conseguiu executar código em uma imagem oficial do Node.js sem divulgar o método. Este site não verificou nada disso e não o linka.
O Ubuntu classifica o problema com prioridade Medium (média), enquanto o Google lhe atribui 9,2. O que pesa mais no seu caso depende de você descomprimir dados recebidos de fora (visão deste site).
Sobre as principais bibliotecas HTTP do Python
Até 27 de outubro, requests, urllib3, httpx e aiohttp não publicaram avisos sobre esta falha (este site verificou a lista de avisos de segurança de cada repositório). urllib3, httpx e aiohttp tratam brotli ou brotlicffi como extras opcionais e só descomprimem Brotli quando um deles está instalado. Os pacotes a corrigir são brotli e brotlicffi no mesmo ambiente. Atualizar apenas a biblioteca HTTP não adianta se o brotli continuar antigo.
O que ainda não se sabe
| Item | Situação |
|---|---|
| Exploração real | Não relatada por fontes primárias. Não está no KEV |
| Prova de conceito pública | Não mencionada por fontes primárias. Um site independente diz que existe (não verificado) |
| Avaliação do NVD | Aguardando análise (só o 9,2 do Google) |
| Lista completa de produtos afetados | Ainda crescendo. Para navegadores e outros produtos, consulte o aviso de cada fornecedor |
| Distribuições Linux | Ubuntu 20.04 e anteriores ainda não avaliados |
Fontes
Todas verificadas em 27 de outubro de 2026.
- JPCERT/CC, alerta sobre a escrita fora dos limites do Brotli (CVE-2026-111497) (JPCERT-AT-2026-0034, 26 de outubro de 2026, em japonês) — jpcert.or.jp
- PHP, "Updated PHP Windows builds for Brotli security fix" (26 de outubro de 2026) — php.net
- Lançamentos do Google Brotli v1.2.1, v1.1.1, v1.0.10 (21 de outubro de 2026) — v1.2.1 / v1.1.1 / v1.0.10
- Node.js, "Node.js Security Releases" (21 de outubro de 2026) — nodejs.org
- Microsoft, "Microsoft Security Advisory CVE-2026-111497 | .NET Brotli Decoder Out-of-bounds Write Vulnerability" (25 de outubro de 2026) — github.com/dotnet
- GitHub Advisory Database GHSA-9v8h-qqgm-4m35 (brotli e brotlicffi do PyPI) — github.com
- PyPI brotli 1.2.1 — pypi.org / brotlicffi 1.2.1.0 — pypi.org
- Bun, "Bundled brotli decoder has an out-of-bounds write" (GHSA-663w-cv8g-jj2p, 23 de outubro de 2026) — github.com
- Envoy, "Out-of-Bounds Write in Brotli Decompressor" (GHSA-3wvj-j6qm-62mr, 23 de outubro de 2026) — github.com
- NVD, "CVE-2026-111497" — nvd.nist.gov
- CISA, "Known Exploited Vulnerabilities Catalog" (não listada na versão de 26 de outubro) — cisa.gov
- Ubuntu, "CVE-2026-111497" — ubuntu.com / Debian, "DLA-4855-1 brotli" — lists.debian.org
Histórico de atualizações
2026-10-27: Primeira versão, com base em informações públicas do Google, Node.js, Microsoft, Bun, Envoy, PHP, PyPI, JPCERT/CC, NVD, catálogo KEV da CISA, Ubuntu e Debian.
Leia a seguir
- Definindo a prioridade: Qual CVE corrigir primeiro: CVSS, EPSS e KEV
- Quando uma vulnerabilidade é anunciada: Guia de remediação de CVE
- Auditoria de dependências: Auditoria de dependências com o OSV-Scanner
- Outra correção crítica na mesma semana: Falhas do PHP CVE-2026-109618 e CVE-2026-109619
- Outra atualização de dependências do Python no mesmo mês: Certificados da eMudhra: atualizando pip, certifi e uv
- Termos: O que é RCE (execução remota de código) / O que é CVSS