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

VetorAV: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 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2022-35922
GHSA-QRJV-RF5Q-QPXC
RUSTSEC-2022-0035

Produtos afetados

Rust-Websocket