PT-2022-23028 · Unknown · Rust-Websocket
Evan Richter
·
Publicado
2022-08-01
·
Atualizado
2023-07-21
·
CVE-2022-35922
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
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.
Exploit
Correção
Resource Exhaustion
Allocation of Resources Without Limits
Buffer Overflow
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Rust-Websocket