PT-2020-17552 · Rust · Socket2

Publicado

2020-11-06

·

Atualizado

2022-05-24

·

CVE-2020-35920

CVSS v3.1

5.5

Média

VetorAV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Nome do software vulnerável e versões afetadas
Versões do socket2 anteriores à 0.3.16
Descrição
O problema decorre do fato de o crate socket2 presumir que std::net::SocketAddrV4 e std::net::SocketAddrV6 possuem o mesmo layout de memória que a representação C do sistema sockaddr. Essa suposição faz com que o crate simplesmente converta ponteiros para transformar endereços de soquete na representação do sistema. No entanto, como a biblioteca padrão não garante um layout de memória específico, quaisquer alterações na implementação podem resultar em acesso inválido à memória. Notavelmente, tais alterações não gerariam avisos ou erros, podendo levar a problemas imprevistos.
Recomendações
Para versões anteriores à 0.3.16, atualize para a versão 0.3.16 ou posterior para resolver o problema. Como solução temporária, considere evitar o uso de std::net::SocketAddrV4 e std::net::SocketAddrV6 em situações em que seu layout de memória possa ser crítico até que a atualização possa ser aplicada.

Exploit

Correção

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

Enumeração de Fraquezas

Identificadores relacionados

CVE-2020-35920
GHSA-458V-4HRF-G3M4
GHSA-C79C-GWPH-GQFM
RUSTSEC-2020-0078
RUSTSEC-2020-0079

Produtos afetados

Socket2