J'aime bien tester des failles de sécurité simples de temps en temps.
Ici, obtention indue des privilèges root par un utilisateur local via pkexec de policykit. Explication détaillée.
En gros : buffer overflow qui modifie une variable d'environnement qui entraîne le chargement d'un module gconv personnalisé qui, profitant du fait que le binaire pkexec est la propriété de root et qu'il a le setuid bit, obtient les droits root (setuid(0)) et lance (exec()) un shell avec ceux-ci. Du coup, j'imagine qu'on doit aussi pouvoir surcharger LD_PRELOAD et s'amuser par cette voie-là.
J'ai testé le code d'exploitation pointé par ce shaarli : il fonctionne sur un système Debian GNU/Linux 10 et 11.
La surface d'attaque me semble être limitée : policykit (et donc pkexec) n'est pas installé sur mes serveurs persos. Il l'est sur mes postes de travail.
Via https://www.exploit-db.com/exploits/50689https://www.exploit-db.com/exploits/50689.