Une vulnérabilité d’élévation de privilèges vieille de sept ans découverte dans le service système polkit pourrait être exploitée par un attaquant local malveillant non privilégié pour contourner l’autorisation et élever les autorisations à l’utilisateur root.
Suivi comme CVE-2021-3560 (score CVSS : 7,8), la faille affecte les versions de polkit entre 0,113 et 0,118 et a été découverte par le chercheur en sécurité GitHub Kevin Backhouse, qui a déclaré que le problème était introduit dans un commit de code fait le 9 novembre 2013. Cédric Buissart de Red Hat c’est noté que les distributions basées sur Debian, basées sur polkit 0.105, sont également vulnérables.
Polkit (née PolicyKit) est une boîte à outils pour définir et gérer les autorisations dans les distributions Linux, et est utilisé pour permettre aux processus non privilégiés de communiquer avec les processus privilégiés.
« Lorsqu’un processus demandeur se déconnecte de dbus-daemon juste avant le démarrage de l’appel à polkit_system_bus_name_get_creds_sync, le processus ne peut pas obtenir un uid et un pid uniques du processus et il ne peut pas vérifier les privilèges du processus demandeur », Red Hat mentionné dans un avis. « La plus grande menace de cette vulnérabilité concerne la confidentialité et l’intégrité des données ainsi que la disponibilité du système. »
RHEL 8, Fedora 21 (ou version ultérieure), Debian « Bullseye » et Ubuntu 20.04 sont quelques-unes des distributions Linux populaires affectées par la vulnérabilité polkit. Le problème a été atténué en version 0.119, qui a été publié le 3 juin.
« La vulnérabilité est étonnamment facile à exploiter. Il suffit de quelques commandes dans le terminal en utilisant uniquement des outils standard comme frapper, tuer, et dbus-send« , a déclaré Backhouse dans un article publié hier, ajoutant que la faille est déclenchée en envoyant une commande dbus-send (par exemple, pour créer un nouvel utilisateur) mais en mettant fin au processus alors que polkit est toujours en train de traiter la demande.
« dbus-send » est un mécanisme de communication inter-processus Linux (IPC) utilisé pour envoyer un message à D-Bus bus de messages, permettant la communication entre plusieurs processus s’exécutant simultanément sur la même machine. Le démon d’autorité de politique de Polkit est mis en œuvre en tant que service connecté au bus système pour authentifier les informations d’identification en toute sécurité.
En tuant la commande, cela provoque un contournement d’authentification car polkit gère mal le message terminé et traite la demande comme si elle provenait d’un processus avec les privilèges root (UID 0), autorisant ainsi immédiatement la demande.
« Pour déclencher le chemin de code vulnérable, vous devez vous déconnecter au bon moment », a déclaré Backhouse. « Et parce qu’il y a plusieurs processus impliqués, le timing de ce » bon moment » varie d’une exécution à l’autre. C’est pourquoi il faut généralement quelques essais pour que l’exploit réussisse. Je suppose que c’est aussi la raison pour laquelle le bogue n’a pas été découvert auparavant. »
Les utilisateurs sont encouragés à mettre à jour leurs installations Linux dès que possible pour remédier à tout risque potentiel résultant de la faille.