Vulnerabilidades no xestor de paquetes Cargo usado para proxectos Rust

No xestor de paquetes Cargo, usado para xestionar paquetes e construír proxectos na linguaxe Rust, identificáronse dúas vulnerabilidades que poden ser explotadas ao descargar paquetes especialmente deseñados desde repositorios de terceiros (indícase que os usuarios do repositorio oficial crates.io non se ven afectados polo problema). A primeira vulnerabilidade (CVE-2022-36113) permite sobrescribir os dous primeiros bytes de calquera ficheiro sempre que o permitan os permisos actuais. A segunda vulnerabilidade (CVE-2022-36114) pódese usar para esgotar o espazo no disco.

As vulnerabilidades solucionaranse na versión de Rust 1.64, prevista para o 22 de setembro. As vulnerabilidades atribúeselles un nivel de gravidade baixo, xa que un dano similar ao usar paquetes non verificados de repositorios de terceiros pode causarse mediante a capacidade estándar de lanzar controladores personalizados desde scripts de montaxe ou macros de procedemento que se proporcionan no paquete. Ao mesmo tempo, os problemas mencionados difiren en que se explotan na fase de apertura do paquete despois da descarga (sen montaxe).

En particular, despois de descargar un paquete, a carga desempaqueta o seu contido no directorio ~/.cargo e almacena un sinal de desempaquetado satisfactorio no ficheiro .cargo-ok. A esencia da primeira vulnerabilidade é que o creador do paquete pode colocar unha ligazón simbólica no seu interior co nome .cargo-ok, o que levará a escribir o texto "ok" no ficheiro sinalado pola ligazón.

A segunda vulnerabilidade é causada pola falta dun límite no tamaño dos datos extraídos do arquivo, que se poden usar para crear "bombas zip" (o arquivo pode conter datos que permitan acadar a relación de compresión máxima para o formato zip - aproximadamente 28 millóns de veces, neste caso, por exemplo, un ficheiro zip de 10 MB especialmente preparado producirá a descompresión de aproximadamente 281 TB de datos).

Fonte: opennet.ru

Engadir un comentario