URL: https://linuxfr.org/users/yetibarbar/journaux/une-cve-dans-le-compilateur-rust Title: Une CVE dans le compilateur rust Authors: YetiBarBar Date: 2022年01月20日T21:42:39+01:00 License: CC By-SA Tags: cve, rust et cve-2022-21658 Score: 26 Bonjour 'Nal, Une petite CVE lié à la librairie standard rust est tombée aujourd'hui: [CVE-2022-21658](https://blog.rust-lang.org/2022/01/20/cve-2022-21658.html) Une CVE dans ce langage parfait? =========== Avant le lacher de troll, parce qu'on est pas (encore trolldi), rust apporte des garanties sur la gestion de la mémoire, pas sur l'absence de bug! Keski se passe? =========== Le problème rencontré est le suivant: une fonction d'effacement récursif (`std::fs::remove_dir_all`) est susceptible de se faire prendre de court par une race condition et effacer un répertoire sur lequel un utilisateur n'a pas les droits. Pour reproduire le problème, il vous faut: - un programme privilégié, écrit en rust et sur lequel vous pouvez faire exécuter la primitive remove_dir_all sur un répertoire de votre choix qu'on appelera temp. - créer un symlink vers un répertoire "sensible" à l'intérieur de temp. - attendre que votre programme privilégié efface le répertoire qu'il n'aurait pas du pouvoir effacer. Kesk'on fait? =========== Il faut patcher la fonction dans le compilateur. Ca sera fait avec la prochaine 1.58.1 (il n'y aura pas de backport a priori). Et surtout, il faudra recompiler le programme privilégié avec cette nouvelle version du compilateur, les librairies étant statiquement compilés dans les binaires rust.