Les responsables du langage de programmation Rust ont publié une mise à jour de sécurité pour une vulnérabilité de haute gravité qui pourrait être exploitée par une partie malveillante pour purger les fichiers et répertoires d’un système vulnérable de manière non autorisée.
« Un attaquant pourrait utiliser ce problème de sécurité pour inciter un programme privilégié à supprimer des fichiers et des répertoires auxquels l’attaquant ne pourrait pas accéder ou supprimer autrement », a déclaré le groupe de travail Rust Security Response (WG). mentionné dans un consultatif publié le 20 janvier 2021.
Rust 1.0.0 à Rust 1.58.0 est affecté par cette vulnérabilité. La faille, qui est suivie comme CVE-2022-21658 (score CVSS : 7,3), a été attribué au chercheur en sécurité Hans Kratz, l’équipe ayant proposé un correctif dans Version de rouille 1.58.1 expédié la semaine dernière.
Plus précisément, le problème provient d’une vérification mal implémentée pour empêcher la suppression récursive des liens symboliques (alias liens symboliques) dans une fonction de bibliothèque standard nommée « std::fs::remove_dir_all ». Cela se traduit par une condition de course, qui, à leur tour, pourraient être exploitées de manière fiable par un adversaire en abusant de son accès à un programme privilégié pour supprimer des répertoires sensibles.
« Au lieu de dire au système de ne pas suivre les liens symboliques, la bibliothèque standard a d’abord vérifié si la chose qu’elle était sur le point de supprimer était un lien symbolique, sinon elle procéderait à la suppression récursive du répertoire », indique l’avis. « Cela a exposé une condition de concurrence : un attaquant pourrait créer un répertoire et le remplacer par un lien symbolique entre la vérification et la suppression réelle. »
Rust, bien qu’il ne soit pas un langage de programmation largement utilisé, a connu une augmentation de l’adoption ces dernières années pour ses garanties de sécurité liées à la mémoire. L’année dernière, Google a annoncé que sa version open source du système d’exploitation Android ajoutera la prise en charge du langage de programmation pour éviter les bogues de sécurité de la mémoire.