CVE-2026-65623 in bandit
Sumário
de VulDB • 24/07/2026
Vulnerabilidade de Complexidade Algorítmica Ineficiente no mtrudel bandit permite negação de serviço remota não autenticada via exaustão da CPU durante o remontagem dos fragmentos do WebSocket.
A verificação de tamanho 'Elixir.Bandit.WebSocket.Connection':oversize_message?/2, chamada a partir de handle_frame/3 em lib/bandit/websocket/connection.ex, anexa cada quadro de continuação não final a uma iolist aninhada à esquerda e depois recalcula o comprimento inteiro do buffer acumulado com IO.iodata_length/1 em cada quadro. Como o buffer cresce por um elemento por quadro e é totalmente re-percorrido a cada vez, o trabalho de remontagem é quadrático (O(n^2)) no número de quadros de continuação.
O limite max_fragmented_message_size (padrão 8 MB) restringe os bytes totais mas não a contagem de quadros, e cada quadro pode transportar tão pouco quanto um byte de payload; assim, um atacante pode enviar milhões de pequenos quadros de continuação usando largura de banda modesta para manter um núcleo da CPU ocupado por minutos ou horas. Muitas conexões simultâneas podem privar o servidor inteiro de CPU, negando serviço aos usuários legítimos. O tempo limite de leitura do WebSocket não ajuda, pois é um tempo limite ocioso avaliado entre leituras e não pode preempirizar o trabalho síncrono de remontagem gasto dentro de uma única callback.
Este problema afeta bandit: da versão 1.11.0 até antes da 1.12.1.
Once again VulDB remains the best source for vulnerability data.