Vulnérabilités dans le gestionnaire de packages Cargo utilisé pour les projets Rust

Dans le gestionnaire de packages Cargo, utilisé pour gérer les packages et construire des projets en langage Rust, deux vulnérabilités ont été identifiées qui peuvent être exploitées lors du téléchargement de packages spécialement conçus à partir de référentiels tiers (il est indiqué que les utilisateurs du référentiel officiel crates.io ne sont pas concernés par le problème). La première vulnérabilité (CVE-2022-36113) permet d'écraser les deux premiers octets de n'importe quel fichier tant que les autorisations actuelles le permettent. La deuxième vulnérabilité (CVE-2022-36114) peut être utilisée pour épuiser l'espace disque.

Les vulnérabilités seront corrigées dans la version de Rust 1.64, prévue pour le 22 septembre. Les vulnérabilités se voient attribuer un faible niveau de gravité, car des dommages similaires lors de l'utilisation de packages non vérifiés à partir de référentiels tiers peuvent être causés en utilisant la capacité standard de lancer des gestionnaires personnalisés à partir de scripts d'assemblage ou de macros procédurales fournies dans le package. Dans le même temps, les problèmes mentionnés ci-dessus diffèrent en ce qu'ils sont exploités au stade de l'ouverture du package après téléchargement (sans assemblage).

En particulier, après avoir téléchargé un package, cargo décompresse son contenu dans le répertoire ~/.cargo et stocke un signe de décompression réussie dans le fichier .cargo-ok. L'essence de la première vulnérabilité est que le créateur du package peut placer un lien symbolique à l'intérieur avec le nom .cargo-ok, ce qui conduira à écrire le texte « ok » dans le fichier pointé par le lien.

La deuxième vulnérabilité est due à l'absence de limite sur la taille des données extraites de l'archive, qui peuvent être utilisées pour créer des « bombes zip » (l'archive peut contenir des données permettant d'atteindre le taux de compression maximal pour le format zip - environ 28 millions de fois (dans ce cas, par exemple, un fichier zip de 10 Mo spécialement préparé entraînera la décompression d'environ 281 To de données).

Source: opennet.ru

Ajouter un commentaire