PT-2026-47332 · Req · Req
Peter Ullrich
+1
·
Publicado
2026-06-08
·
Atualizado
2026-06-08
·
CVE-2026-49755
CVSS v4.0
8.2
Alta
| Vetor | AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Nome do Software Vulnerável e Versões Afetadas
wojtekmach Req versões 0.1.0 a 0.6.0
Descrição
O manuseio inadequado de dados altamente compactados permite que servidores HTTP controlados por atacantes esgotem a memória de um cliente por meio de corpos de resposta do tipo bomba de descompressão. O pipeline de resposta padrão inclui as funções
decode body() e decompress body(). A função decode body() processa o content-type fornecido pelo servidor e chama :zip.extract(body, [:memory]) para application/zip, :erl tar.extract({:binary, body}, [:memory]) para application/x-tar e :erl tar.extract({:binary, body}, [:memory, :compressed]) para application/gzip ou .tgz. Essas operações retornam o conteúdo completo do arquivo descompactado na memória sem um limite de tamanho total. Além disso, decompress body() encadeia decodificadores :zlib, :brotli e :ezstd com base no cabeçalho content-encoding, permitindo que as respostas se expandam através de múltiplas camadas sem limite. Como essas etapas são habilitadas por padrão, uma resposta pequena pode expandir-se para vários gigabytes, travando o processo BEAM.Recomendações
Atualize para a versão 0.6.1.
Como solução temporária, desabilite a decodificação automática do corpo passando
decode body: false para Req.new() ou Req.get!() em requisições que buscam URLs influenciadas por atacantes.
Para ignorar o pipeline de descompressão de content-encoding, passe raw: true para garantir que o corpo da resposta permaneça como bytes brutos para verificação de tamanho antes da descompressão.Exploit
Correção
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Req