PT-2026-94396 · Unknown · Async Http Client
CVSS v3.1
7.5
Alta
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Nome do Software Vulnerável e Versões Afetadas
AsyncHttpClient versões 2.0.0 até 2.16.0
AsyncHttpClient versões 3.0.0 até 3.0.11
Description
A descompressão automática de resposta no caminho HTTP/1.1 utiliza
ChannelManager.newHttpContentDecompressor() para instalar o Http1ContentDecompressor sem um limite cumulativo de tamanho de saída. Um servidor malicioso ou comprometido, ou um invasor que possa alterar uma resposta em trânsito, pode enviar uma pequena resposta compactada usando gzip, deflate ou snappy que se expande através de chunks até que o cliente esgote sua heap, resultando em um OutOfMemoryError. Isso também afeta brotli e zstd quando codecs opcionais estão presentes. Nas versões 3.0.8 a 3.0.10, o descompressor HTTP/2 também não possui limite, portanto, a troca de protocolos não mitiga o problema. A falha ocorre porque os limites aplicados a chamadas de decodificação individuais são insuficientes quando uma resposta é entregue em muitos chunks pequenos; a correção exige o rastreamento do total de bytes descompactados para a resposta completa.Recommendations
Atualize o AsyncHttpClient versões 2.0.0 até 2.16.0 para a versão 2.16.1.
Atualize o AsyncHttpClient versões 3.0.0 até 3.0.11 para a versão 3.0.12 ou posterior.
Como solução temporária para a linha 3.x, desative a descompressão automática chamando
setEnableAutomaticDecompression(false) e realize a descompressão manualmente com um limite de tamanho definido.
Como solução temporária para a linha 2.x, remova o manipulador de inflador através do httpAdditionalChannelInitializer.
Execute o cliente atrás de um proxy que limite o tamanho das respostas para minimizar o risco de exploração.Exploit
Correção
Resource Exhaustion
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Async Http Client