113 vulnérabilités ont été identifiées dans Rust Coreutils. Les commandes cp, mv et rm de GNU Coreutils ont été réintroduites dans Ubuntu 26.04.

La société Canonical a publié les résultats préliminaires d'un audit de sécurité indépendant des outils uutils coreutils (Rust Coreutils), écrit en Rust et utilisé partiellement dans Ubuntu en remplacement du paquet GNU Coreutils. L'audit a été réalisé par la société Zellic, spécialisée dans l'analyse des vulnérabilités dans les projets en Rust. Lors de cette vérification, 113 problèmes de sécurité ont été identifiés.

Un rapport (PDF, 156 pages) détaillant les résultats de la première phase de l'audit, qui couvre les utilitaires les plus importants du jeu d'outils uutils, est désormais disponible. La première phase, qui a eu lieu de décembre 2025 à janvier 2026, a révélé 73 vulnérabilités, dont 7 ont été classées comme critiques, 11 comme dangereuses, 29 comme de gravité moyenne et 26 comme non dangereuses.

La deuxième phase de l'audit a été réalisée de février à mars et a couvert les utilitaires secondaires qui n'avaient pas été vérifiés lors de la première phase. Au cours de cette seconde phase, 40 vulnérabilités ont été trouvées, dont les dangers ne sont pas encore détaillés (le rapport sera publié ultérieurement). Les informations concernant tous les problèmes identifiés ont déjà été transmises aux développeurs d'uutils et la majeure partie des vulnérabilités a été corrigée dans les versions uutils 0.5-0.8 sans publicité excessive ni mention du lien entre les corrections et les vulnérabilités.

Le paquet rust-coreutils a été inclus par défaut dans la version d'automne d'Ubuntu 25.10, mais en raison des problèmes identifiés lors de l'audit, les utilitaires cp, mv et rm du paquet GNU Coreutils ont été réintroduits dans la branche LTS d'Ubuntu 26.04. Il est à noter qu'au 22 avril, il reste 8 états de conditions de compétition non corrigés dans ces utilitaires. Les autres utilitaires proviennent de la version rust-coreutils 0.8.0. Dans Ubuntu 26.10, les développeurs prévoient de passer complètement à rust-coreutils.

Les vulnérabilités dans les utilitaires système sont dangereuses car elles sont utilisées dans des scripts exécutés avec les droits root. Par exemple, la vulnérabilité corrigée dans la version uutils coreutils 0.3.0 du utilitaire rm aurait pu être exploitée lors d'une exécution quotidienne depuis un script cron /etc/cron.daily/apport, qui est exécuté avec les droits root et qui supprime récursivement le contenu du répertoire /var/crash, accessible en écriture à tous les utilisateurs du système.

Parmi les vulnérabilités classées comme critiques dans le premier rapport :

  • Vulnérabilité dans l'outil chroot, causée par le traitement de l'option « —userspec » après l'appel à chroot(), mais avant la réduction des privilèges. Sur les systèmes avec glibc, la résolution de noms via la fonction getpwnam() entraîne la lecture du fichier /etc/nsswitch.conf, utilisé dans le NSS (Name Service Switch), et le chargement dynamique des bibliothèques spécifiées avec des modules NSS (libnss_*.so.2). Comme l'appel à chroot() est exécuté avant le traitement du NSS, le fichier /etc/nsswitch.conf est chargé par rapport à la nouvelle racine, mais les bibliothèques NSS sont chargées avant la réduction des privilèges. Si un utilisateur a accès en écriture au nouveau répertoire racine, il peut substituer ses propres bibliothèques NSS et obtenir l'exécution de code avec les droits root.
  • Modification des permissions d'un fichier après un échec de création d'un tube nommé (FIFO) par l'outil mkfifo — si un fichier existant est fourni en argument, mkfifo renverra une erreur, mais ne terminera pas de manière catastrophique, et exécutera un appel à set_permissions() pour changer les permissions du fichier existant. Avec un umask de 022, la vulnérabilité permet de changer les permissions du fichier à 644 (rw-r--r--) et d'accéder à des fichiers pour lesquels la lecture n'était pas autorisée.
  • Contournement des restrictions « —preserve-root » dans l'outil chmod, empêchant l'exécution d'opérations récursives sur la racine du système de fichiers. La vulnérabilité (CVE-2026-35338) est provoquée par le fait que le code vérifiait uniquement la correspondance exacte du chemin avec « / » et ne canonisait pas le chemin du fichier. Pour contourner la vérification, il suffit d'utiliser un chemin tel que « /../ » ou un lien symbolique vers la racine. La vulnérabilité est dangereuse, car si l'on peut injecter son propre chemin dans un script système appelant la commande chmod, il est possible de réaliser un changement récursif des permissions pour tous les fichiers du système de fichiers.
  • Dans l'outil rm, le traitement de toute abréviation de l'option « —no-preserve-root » (« —n », « —no », « —no-p », « —no-pres » etc.) était autorisé pour désactiver la protection contre l'exécution d'opérations récursives sur la racine (par exemple, on peut spécifier « rm -rf —n / » et supprimer accidentellement toutes les données. Dans GNU Coreutils, de telles options abrégées sont interdites.
  • Contournement des restrictions « —preserve-root » dans l'outil rm, interdisant l'exécution d'opérations récursives sur la racine du système de fichiers, en substituant un lien symbolique vers « / ».
  • Absence de protection adéquate contre la spécification de répertoires commençant par un point. Par exemple, lors de l'exécution de « rm -rf . », l'outil affichera une erreur, mais en spécifiant « rm -rf ./ » ou « rm -rf ./// », il supprimera silencieusement le répertoire actuel.
  • Une erreur dans le code de parsing des arguments de l'utilitaire kill permet d'envoyer un signal à tous les processus du système en indiquant l'identifiant de processus « -1 » (kill -1).

Par ailleurs, la plupart des vulnérabilités appartiennent à la classe TOCTOU (Time-Of-Check-To-Time-Of-Use), ce qui implique l'existence d'une condition de course, permettant de modifier les données juste après la vérification de leur validité, mais avant l'exécution de l'opération sur celles-ci. Par exemple, il est possible de remplacer un fichier par un lien symbolique entre la fin de la vérification et le début de l'exécution de l'opération. Dans le contexte de l'utilisation des utilitaires cp et mv dans des scripts système lancés avec des droits root, de telles vulnérabilités permettent de copier ou de remplacer des fichiers arbitraires.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster