
Exploit d'élévation de privilèges locale pour CVE-2021-4034 dans pkexec, fournissant une preuve de concept qui ouvre un shell root sur les systèmes vulnérables.
Ce dépôt contient un exploit de la CVE-2021-4034, une élévation de
privilèges locale dans pkexec. Cette implémentation est basée sur celle
décrite dans la divulgation de la
CVE, que vous devriez lire.
Si cela fonctionne sur votre machine, cela signifie que vous êtes vulnérable. Pour y
remédier, mettez à jour polkit vers une version corrigée, ou désactivez le bit setuid
sur pkexec avec la commande suivante :
$ sudo chmod a-s $(which pkexec)
Cet exploit est dangereusement facile à écrire à partir des informations contenues dans la divulgation, alors corrigez toutes vos machines dès que possible.
Pour exécuter cet exploit, lancez simplement make dans le répertoire
racine. Cela va :
exploit.c, qui exécute l'exploitgconv/badconv.c, qui contient la charge utile./exploitSi cela vous ouvre un shell en tant que root, votre système est vulnérable.
Si vous obtenez la sortie suivante, vous avez correctement atténué le bug
à l'aide de la commande chmod ci-dessus :
Running exploit...
GLib: Cannot convert message: Could not open converter from “UTF-8” to “ZT”
pkexec must be setuid root
Si vous obtenez le message d'aide de pkexec en sortie, votre système était
probablement déjà corrigé.
Cette implémentation devrait fonctionner sur tous les systèmes vulnérables, y compris Fedora 34+ et certaines versions d'OpenSUSE qui ne semblent pas être vulnérables à certaines implémentations. Plus précisément, cela fonctionnera même si votre système dispose d'une version de polkit qui désactive GVFS (ajouté ici). Cela étant dit, je n'ai aucune expérience formelle en sécurité informatique et il se peut qu'il indique que votre système est corrigé, même s'il est encore vulnérable à cet exploit ou à d'autres exploits similaires. Par conséquent, vous devez vous assurer de maintenir vos systèmes à jour, d'écouter les personnes qui savent de quoi elles parlent, et de toujours manger vos légumes.