PT-2020-17536 · Rust · Crossbeam-Channel

Publicado

2020-06-26

·

Atualizado

2021-08-25

·

CVE-2020-35904

CVSS v3.1

8.1

Alta

VetorAV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Nome do software vulnerável e versões afetadas
Versões do crossbeam-channel anteriores à 0.4.4
Descrição
Foi descoberta uma falha no crate crossbeam-channel para Rust. Ele possui expectativas incorretas sobre a relação entre a alocação de memória e o número de elementos do iterador. A versão afetada do canal bounded deste crate assume incorretamente que Vec::from iter alocou uma capacidade igual ao número de elementos do iterador. O Vec::from iter não garante isso e pode alocar memória extra. O destrutor do canal bounded reconstrói o Vec a partir do ponteiro bruto com base nas suposições incorretas descritas acima. Isso é incorreto e causa a desalocação com a capacidade incorreta quando o Vec::from iter alocou tamanhos diferentes do número de elementos do iterador.
Recomendações
Para resolver o problema, atualize para a versão 0.4.4 do crossbeam-channel. Como solução temporária, considere evitar o uso do canal bounded até que um patch seja aplicado. Restrinja o acesso ao canal bounded para minimizar o risco de exploração. Evite usar Vec::from iter no canal bounded afetado até que o problema seja resolvido.

Exploit

Correção

Buffer Overflow

Memory Leak

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2020-35904
GHSA-M8H8-V6JH-C762
GHSA-V5M7-53CV-F3HX
RUSTSEC-2020-0052

Produtos afetados

Crossbeam-Channel