Vulnerabilidades no gerenciador de pacotes Cargo usado para projetos Rust

Duas vulnerabilidades foram identificadas no gerenciador de pacotes Cargo, que é usado para gerenciar pacotes e construir projetos na linguagem Rust, que podem ser exploradas ao baixar pacotes especialmente projetados de repositórios de terceiros (alega-se que os usuários do crates. io não foram afetados pelo problema). A primeira vulnerabilidade (CVE-2022-36113) permite sobrescrever os dois primeiros bytes de qualquer arquivo, desde que as permissões atuais permitam. A segunda vulnerabilidade (CVE-2022-36114) pode ser explorada para esgotar o espaço livre em disco.

As vulnerabilidades serão corrigidas no lançamento do Rust 1.64, previsto para 22 de setembro. As vulnerabilidades recebem um baixo nível de gravidade, uma vez que danos semelhantes ao usar pacotes não verificados de repositórios de terceiros podem ser causados ​​​​pela capacidade padrão de executar seus manipuladores a partir de scripts de construção ou macros processuais fornecidas no pacote. Ao mesmo tempo, os problemas acima diferem pelo fato de sua operação ser realizada na fase de abertura da embalagem após o carregamento (sem montagem).

Em particular, depois de carregar um pacote, cargo descompacta seu conteúdo no diretório ~/.cargo e salva um sinal de descompactação bem-sucedida no arquivo .cargo-ok. A essência da primeira vulnerabilidade é que o criador do pacote pode colocar dentro dele um link simbólico com o nome .cargo-ok, o que levará à escrita do texto “ok” no arquivo apontado pelo link.

A segunda vulnerabilidade é causada pela falta de limite no tamanho dos dados extraídos do arquivo, que podem ser usados ​​para criar "bombas zip" (os dados podem ser colocados no arquivo para atingir a taxa de compactação máxima para o formato zip - cerca de 28 milhões de vezes, neste caso, por exemplo, um arquivo zip de 10 MB especialmente preparado irá descompactar cerca de 281 TB de dados).

Fonte: opennet.ru

Adicionar um comentário