Unknown · Rust-Websocket · CVE-2022-35922
**Nome do software vulnerável e versões afetadas**
Versões do Rust-WebSocket anteriores à 0.26.5
**Descrição**
Conexões WebSocket não confiáveis podem causar um abortamento do processo por falta de memória (OOM) em um cliente ou servidor. A causa principal do problema ocorre durante a análise do dataframe. As versões afetadas alocariam um buffer com base no tamanho declarado do dataframe, que pode vir de uma fonte não confiável. Quando `Vec::with capacity` falha na alocação, o alocador padrão do Rust abortará o processo atual, encerrando todas as threads. Isso afeta apenas a implementação síncrona (não-Tokio). A versão assíncrona também não limita a memória, mas não usa `with capacity`, portanto, um DoS só pode ocorrer quando bytes para um dataframe ou mensagem de tamanho excessivo forem efetivamente entregues pelo invasor.
**Recomendações**
Atualize para a versão 0.26.5 para corrigir o problema, impondo limites padrão de tamanho de dataframe.
Para usuários que não possam atualizar, filtre o tráfego de websocket externamente ou aceite apenas tráfego confiável.
Considere ajustar os limites padrão de memória para aplicações específicas usando a nova API.
Como solução alternativa temporária, considere lidar com o abortamento de processos de maneira controlada e limitar a memória do processo usando ferramentas do sistema operacional.