Un bug de service système Linux donne root sur toutes les principales distributions, exploit publié

Linux system service bug gives you root on every major distro

Une vulnérabilité dans le composant pkexec de Polkit identifiée comme CVE-2021-4034 (PwnKit) est présente dans la configuration par défaut de toutes les principales distributions Linux et peut être exploitée pour obtenir des privilèges root complets sur le système, avertissent aujourd’hui les chercheurs.

CVE-2021-4034 a été nommé PwnKit et son origine remonte au commit initial de pkexec, il y a plus de 12 ans, ce qui signifie que toutes les versions de Polkit sont affectées.

Faisant partie du cadre d’application open source Polkit qui négocie l’interaction entre les processus privilégiés et non privilégiés, pkexec permet à un utilisateur autorisé d’exécuter des commandes en tant qu’autre utilisateur, se doublant d’une alternative à sudo.

Facile à exploiter, PoC attendu prochainement

Des chercheurs de la société de sécurité de l’information Qualys ont découvert que le programme pkexec pouvait être utilisé par des attaquants locaux pour augmenter les privilèges de root sur les installations par défaut d’Ubuntu, Debian, Fedora et CentOS.

Ils avertissent que PwnKit est probablement exploitable sur d’autres systèmes d’exploitation Linux également.

Bharat Jogi, directeur de la recherche sur les vulnérabilités et les menaces chez Qualys explique que PwnKit est « une vulnérabilité de corruption de mémoire dans Polkit, qui permet à tout utilisateur non privilégié d’obtenir des privilèges root complets sur un système vulnérable en utilisant la configuration polkit par défaut »,

Le chercheur note que le problème est caché à la vue de tous depuis la première version de pkexec inn en mai 2009. La vidéo ci-dessous démontre l’exploitabilité du bug :

L’exploitation de la faille est si facile, selon les chercheurs, que le code d’exploitation de la preuve de concept (PoC) devrait être rendu public dans quelques jours seulement. L’équipe de recherche Qualys ne publiera pas de PoC pour PwnKit.

Mettre à jour: Un exploit a déjà fait son apparition dans l’espace public, moins de trois heures après que Qualys a publié les détails techniques de PwnKit. EZpublish-france.fr a compilé et testé l’exploit disponible, qui s’est avéré fiable car il nous a donné des privilèges root sur le système à toutes les tentatives.

L'exploit stable de PwnKit donne les privilèges root à un utilisateur non privilégié
source: EZpublish-france.fr

Se référant à l’exploit, analyste de vulnérabilité CERT/CC Will Dorman dit qu’il est à la fois simple et universel. Le chercheur l’a ensuite testé sur un système ARM64, montrant qu’il fonctionne également sur cette architecture.

Qualys a signalé le problème de sécurité de manière responsable le 18 novembre 2021 et a attendu qu’un correctif soit disponible avant de publier le détails techniques derrière PwnKit.

La société recommande fortement aux administrateurs de donner la priorité à l’application des correctifs que les auteurs de Polkit publié sur leur GitLab il y a quelques heures.

Les distributions Linux ont eu accès au correctif quelques semaines avant la divulgation coordonnée d’aujourd’hui de Qualys et devraient publier les packages pkexec mis à jour à partir d’aujourd’hui.

Ubuntu a déjà poussé les mises à jour de PolicyKit pour résoudre la vulnérabilité dans les versions 14.04 et 16.04 MES (maintenance de sécurité étendue) ainsi que dans plus versions récentes 18.04, 20.04 et 21.04. Les utilisateurs doivent simplement exécuter une mise à jour standard du système, puis redémarrer l’ordinateur pour que les modifications prennent effet.

Red Hat a également livré un mise à jour de sécurité pour polkit sur les produits Workstation et Enterprise pour les architectures prises en charge, ainsi que pour la prise en charge du cycle de vie étendu, TUS et AUS.

Une atténuation temporaire pour les systèmes d’exploitation qui n’ont pas encore poussé de correctif consiste à retirer à pkexec les droits de lecture/écriture avec la commande suivante :

chmod 0755 /usr/bin/pkexec

« Les utilisateurs qui souhaitent rechercher des signes d’exploitation de PwnKit peuvent le faire en vérifiant les journaux pour « La valeur de la variable SHELL n’a pas été trouvée dans le fichier /etc/shells » ou « La valeur de la variable d’environnement […] contient du contenu suspect.” entrées.

Cependant, Qualys note qu’exploiter PwnKit est possible sans laisser de trace.

L’année dernière, Kevin Backhouse, chercheur au GitHub Security Lab, a découvert une autre ancienne vulnérabilité d’escalade de privilèges affectant Polkit.

Le bug était présent depuis sept ans, depuis la version 0.113 du composant et affectait les distributions Linux populaires, notamment RHEL 8, Fedora 21 (ou version ultérieure), Ubuntu 20.04 et les versions instables de Debian (« bullseye ») et ses dérivés.

Mettre à jour [January 25, 17:26 EST]: Ajout d’avis de sécurité sur PolicyKit / Polkit d’Ubuntu et Red Hat.

Mettre à jour [January 25, 17:43 EST]: Article mis à jour avec des informations sur la mise à disposition publique du code d’exploitation de preuve de concept.