PT-2026-36540 · Bandit · Bandit
Jonatan Männchen
+2
·
Publicado
2026-05-01
·
Atualizado
2026-05-07
·
CVE-2026-39804
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 |
Nome do Software Vulnerável e Versões Afetadas
bandit versões 0.5.9 até 1.10.x
Descrição
Um invasor remoto não autenticado pode causar a negação de serviço via exaustão de memória quando a compressão permessage-deflate do WebSocket está habilitada. O problema ocorre porque a função
inflate/2 em Elixir.Bandit.WebSocket.PerMessageDeflate chama :zlib.inflate/2 sem um limite de tamanho de saída e materializa a carga útil descompactada como um único binário usando IO.iodata to binary/1. Embora o websocket options.max frame size limite o tamanho do quadro compactado, ele não limita a saída descompactada. Consequentemente, um quadro compactado de alta proporção pode forçar alocações de heap em escala de GiB, esgotando a memória do nó BEAM e disparando a interrupção por falta de memória (OOM kill). Isso requer que tanto o websocket options.compress no nível do servidor quanto a opção compress: true por upgrade em WebSockAdapter.upgrade/4 estejam habilitados.Recomendações
Atualize para a versão 1.11.0 ou posterior.
Como alternativa temporária, não passe
compress: true para WebSockAdapter.upgrade/4 ou defina-o como false para evitar a negociação do permessage-deflate.Exploit
Correção
DoS
Allocation of Resources Without Limits
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Bandit