Ir para o conteúdo principal
Voltar aos artigos

Brotli: sua superfície de ataque também está nas respostas HTTP

A falha no decodificador C atravessa runtimes. O inventário precisa descobrir quem descomprime dados externos, inclusive clientes HTTP.

·3 min de leitura·18 visualizações

A CVE-2026-111497 está no decodificador C do Brotli e pode causar corrupção de memória ao processar dados comprimidos preparados por um atacante.[2] A reportagem amplia o mapa de exposição para Python, Bun e proxies, além do caso demonstrado em uma compilação específica de Node.js para Linux ARM64.[2]

A pergunta útil não é apenas se o servidor aceita uploads comprimidos. É quais processos descomprimem conteúdo de terceiros. Isso inclui código que busca uma página, consulta uma API ou executa uma integração aparentemente somente de leitura.

O que muda para quem desenvolve

Em Python, a presença de Brotli ou brotlicffi pode ativar descompressão automática em bibliotecas HTTP, mesmo sem importação direta pelo código da aplicação.[2] Em Node.js e Bun, respostas de fetch e parsers de corpos comprimidos são caminhos relevantes; um servidor HTTP Node.js básico não descomprime corpos automaticamente.[2] Envoy e Istio dependem de a descompressão Brotli estar habilitada.[2]

Minha análise: procurar apenas referências ao nome da biblioteca no repositório tende a responder à pergunta errada. É necessário observar a composição do ambiente e o comportamento do cliente que efetivamente recebe os bytes.

Como aplicar

Monte uma tabela por serviço com runtime, imagem, módulos de compressão presentes e origem dos dados recebidos. Confira isso no ambiente construído, não somente no arquivo de dependências pretendidas.

Como experimento de compatibilidade, use um servidor de teste sob seu controle para devolver uma resposta Brotli válida. Observe se o cliente entrega bytes comprimidos ou conteúdo já decodificado. Repita depois da atualização e compare status, cabeçalhos e resultado. Não é necessário usar uma carga de exploração para descobrir o caminho de descompressão.

Entre as versões corrigidas citadas estão Node.js 22.23.4, 24.22.1 e 26.12.1, Bun 1.4.4, Brotli para Python 1.2.1 e brotlicffi 1.2.1.0.[2] Use esses números como ponto de conferência para os produtos correspondentes, verificando separadamente pacotes fornecidos pela distribuição. Inclua reconstrução de imagens e reinício dos processos no aceite da mudança.

Cuidados e limites

Retirar br de Accept-Encoding não impede que um servidor malicioso envie Brotli mesmo assim.[2] A matéria não relata exploração real nem demonstra execução de código em todos os produtos que reutilizam o decodificador.[2]

Não transforme exposição possível em comprometimento confirmado. Por outro lado, ausência de alerta no scanner também não deve encerrar a investigação: a reportagem aponta atraso possível na associação da CVE aos pacotes Python.[2] Se optar por remover módulos opcionais, teste o fallback e o impacto nas integrações antes de considerar a mitigação operacionalmente válida.

Fonte

[2] Fonte: The Hacker News

Continue lendo