Vulnérabilité dans Polkit qui vous permet d'élever vos privilèges dans le système

Une vulnérabilité (CVE-2021-3560) a été identifiée dans le composant Polkit, qui est utilisé dans les distributions pour permettre aux utilisateurs non privilégiés d'effectuer des actions nécessitant des droits d'accès élevés (par exemple, monter une clé USB), ce qui permet à un utilisateur local de obtenir les droits root dans le système. La vulnérabilité est corrigée dans Polkit version 0.119.

Le problème est présent depuis la version 0.113, mais de nombreuses distributions, notamment RHEL, Ubuntu, Debian et SUSE, ont rétroporté les fonctionnalités concernées dans des packages basés sur des versions plus anciennes de Polkit (des correctifs de packages sont déjà disponibles dans les distributions).

Le problème se manifeste dans la fonction polkit_system_bus_name_get_creds_sync(), qui obtient les identifiants (uid et pid) du processus demandant l'élévation de privilèges. Un processus est identifié par Polkit en attribuant un nom unique dans DBus, qui est ensuite utilisé pour vérifier les privilèges. Si un processus se déconnecte de dbus-daemon juste avant le démarrage du gestionnaire polkit_system_bus_name_get_creds_sync, le gestionnaire reçoit un code d'erreur au lieu d'un nom unique.

La vulnérabilité est due au fait que le code d'erreur renvoyé n'est pas correctement traité et que la fonction polkit_system_bus_name_get_creds_sync() renvoie TRUE au lieu de FALSE, bien qu'elle ne puisse pas faire correspondre le processus à l'uid/pid et vérifier les privilèges demandés pour le processus. Le code à partir duquel la fonction polkit_system_bus_name_get_creds_sync() a été appelée suppose que la vérification a réussi et que la demande d'augmentation des privilèges provient de root et non d'un utilisateur non privilégié, ce qui permet d'effectuer des actions privilégiées sans authentification et vérification supplémentaires des informations d'identification.

Source: opennet.ru

Ajouter un commentaire