Sudo n’échappe pas aux failles : l’utilitaire Linux est affecté par une vulnérabilité qui permet une élévation de privilège. Immatriculée CVE-2019-14287, elle a été signalée par le chercheur Joe Vennix, d’Apple Information Security. La faille a été jugée d’une sévérité moyenne, car elle n’affecte pas l’ensemble des implémentations de Sudo.
Comprendre son fonctionnement et son impact demande de se plonger un eu dans le fonctionnement de l’utilitaire Sudo. Celui-ci est bien connu des utilisateurs Linux ou Unix : il permet d’exécuter un processus avec les droits d’administrateur de la machine sans forcement imposer à l’utilisateur d’être connecté sur une session disposant des droits d’administration. L’utilisateur n’a besoin que d’entrer le mot de passe administrateur pour que le processus soit exécuté avec les droits correspondant, sans avoir besoin de s’authentifier sur une session disposant des privilèges nécessaires.
Calife à la place du calife
L’utilitaire permet également des contrôles plus fins : ainsi, l’administrateur du système peut permettre à certains utilisateurs d’utiliser la commande sudo pour des processus définis et leur interdire l’exécution de cette commande pour d’autres processus. Cette méthode de gestion des droits est définie dans le fichier /etc/sudoers, qui permet de spécifier quels utilisateurs enregistrés peuvent se servir de Sudo et pour quels processus.
La vulnérabilité CVE-2019-14287 permettait de contourner cette politique de privilège, en autorisant un utilisateur à avoir recours à l’utilitaire Sudo sur toutes les commandes du système, en dépit des restrictions inscrites dans le fichier /etc/sudoers. La faille n’était utilisable que sur les systèmes exploitant le fichier /etc/sudoers, qui n’est pas activé par défaut sur l’ensemble des distributions.
Pour un utilisateur ayant accès à la machine, l’exploitation de la faille est triviale : il suffisait de spécifier l’user ID « -1 » ou « 4294967295 ». La fonction chargée de convertir l’user ID avait en effet un comportement qui convertissait ces deux chaînes de caractère en « 0 », ce qui correspond à l’user ID de l’administrateur système de la machine.
Une faille de sécurité assez anecdotique, mais qui pouvait permettre à un programme ou un utilisateur malveillant d’exécuter du code sur la machine avec des privilèges élevés. Et Sudo étant implémenté sur l’ensemble des distributions Linux, la faille mérite d’être corrigée. Heureusement, les mainteneurs des différentes distributions ne s’y sont pas trompés et les correctifs ont été rapidement diffusés. La version de Sudo implémentant le correctif est la version 1.8.28.
Comentários