
PoC éducatif du CVE-2021-4034, le PwnKit, LPE via pkexec de polkit. Utilisation autorisée uniquement.
Preuve de concept pour PwnKit, une escalade de privilèges locale dans pkexec de polkit. Sur une installation par défaut, tout utilisateur local non privilégié peut devenir root.
Les versions vulnérables de pkexec gèrent mal le comptage des arguments du processus. Cela permet à des variables d'environnement contrôlées d'être réintroduites dans l'environnement de pkexec, ce qui aboutit à l'exécution d'un objet partagé contrôlé par l'attaquant en tant que root. Elle a été divulguée le 25 janvier 2022 par l'équipe de recherche Qualys et obtient un score de 7.8 (élevé) sur CVSS v3.1. L'entrée NVD est CVE-2021-4034.
Pratiquement toutes les versions de polkit depuis 2009 ont été affectées jusqu'au correctif coordonné. Les distributions ont diffusé des paquets corrigés à la date de divulgation ou après, alors gardez vos mises à jour fournisseur à jour.
Il s'agit d'une référence éducative pour une vulnérabilité bien documentée et divulguée publiquement. Je l'utilise pour étudier le défaut de gestion des arguments de pkexec, pour valider l'état du correctif dans des laboratoires et évaluations autorisés, et pour conserver des notes de détection et de correction.
Exécutez ceci uniquement sur des systèmes que vous possédez ou que vous êtes autorisé à tester.
gcc cve-2021-4034-poc.c -o cve-2021-4034-poc
./cve-2021-4034-poc
Sur un hôte vulnérable, cela vous donne un shell root. Vérifié sur Debian 10 buster et CentOS 7.
Appliquez les correctifs pour polkit et pkexec vers la version corrigée de votre distribution. Si vous ne pouvez pas corriger immédiatement, supprimez le bit SUID avec chmod 0755 sur le binaire pkexec, en acceptant de perdre la délégation de privilèges de pkexec. Pour la détection, alertez sur les exécutions de pkexec avec un argv vide ou un environnement étrange tel que GCONV_PATH, CHARSET ou SHELL juste avant l'apparition d'un shell root.
La vulnérabilité a été découverte et divulguée de manière responsable par l'équipe de recherche Qualys.
oss-security advisory: https://seclists.org/oss-sec/2022/q1/80
Ce code est publié uniquement pour l'étude et les tests de sécurité autorisés. L'exécuter sur des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation écrite de test est illégal et peut entraîner des responsabilités pénales et civiles. Utilisez-le dans vos propres laboratoires ou dans le cadre d'un engagement signé. Vous êtes responsable de ce que vous en faites.