Vulnérabilités dans AppArmor permettant d'obtenir un accès root sur le système.

La société Qualys a identifié 9 vulnérabilités dans le système de gestion des accès mandatoires AppArmor, dont les plus dangereuses permettent à un utilisateur local non privilégié d'obtenir des droits root sur le système, de sortir des conteneurs isolés et de contourner les restrictions imposées par AppArmor. Les vulnérabilités ont été désignées par le nom de code CrackArmor. Les identifiants CVE n'ont pas encore été attribués. Des exemples réussis d'élévation de privilèges ont été démontrés sous Ubuntu 24.04 et Debian 13.

Les problèmes existent dans le module LSM AppArmor depuis le noyau Linux 4.11, sorti en 2017, et se manifestent dans les distributions utilisant AppArmor, telles qu'Ubuntu, Debian, openSUSE et SUSE (à partir d'openSUSE/SUSE 16, SELinux est activé par défaut, mais AppArmor est laissé en option). Des correctifs pour corriger les vulnérabilités ont été transmis aux développeurs du noyau Linux et seront proposés aux utilisateurs dans les mises à jour 6.18.18, 6.19.8, 6.12.77, 6.6.130, 6.1.167, 5.15.203 et 5.10.253 dans les prochains jours. La correction a également été incluse dans les mises à jour des paquets du noyau pour Ubuntu d'aujourd'hui. Parallèlement, des mises à jour des paquets sudo, sudo-ldap et util-linux (qui inclut l'outil su), dans lesquels les défauts permettant d'exploiter la vulnérabilité dans AppArmor ont été corrigés, ont été publiées dans Ubuntu. Une mise à jour est en cours de préparation pour Debian.

Les problèmes proviennent d'une vulnérabilité fondamentale dans AppArmor de type « délégué confus » (« confused-deputy »), permettant aux utilisateurs non privilégiés de charger, remplacer et supprimer des profils AppArmor arbitraires. Cette vulnérabilité peut être directement exploitée pour désactiver la protection des programmes et services contre les attaques locales et distantes (par exemple, en écrivant dans les pseudo-fichiers /sys/kernel/security/apparmor/.load, .replace et .remove pour lever les restrictions dans cupsd et rsyslogd), provoquer des dénis de service (en utilisant des profils prohibitifs) et contourner les restrictions d'espaces de noms (en chargeant un nouveau profil AppArmor « userns », par exemple, pour /usr/bin/time, permettant de créer des espaces de noms utilisateurs illimités).

La possibilité de remplacer les profils AppArmor permet également d'obtenir des privilèges root en liant de nouveaux profils aux utilitaires privilégiés, tels que su et sudo, qui bloquent l'accès à certains appels système. En particulier, les droits root peuvent être obtenus en bloquant l'opération setuid (CAP_SETUID) pour l'utilitaire sudo, en conjonction avec la manipulation de la variable d'environnement MAIL_CONFIG pour changer le répertoire des configurations de messagerie. de serveurs Postfix.

Le principe de la méthode est que lorsque des problèmes surviennent, l'utilitaire sudo envoie un email à l'administrateur en lançant /usr/sbin/sendmail. En bloquant le retour de privilèges, il est possible de faire exécuter ce processus avec des droits root, et en définissant la variable d'environnement MAIL_CONFIG avant de lancer sudo, il est possible de passer d'autres paramètres à l'utilitaire sendmail, y compris la spécification de son propre gestionnaire postdrop, exécuté lors de l'envoi de mail. $ mkdir /tmp/postfix $ cat > /tmp/postfix/main.cf < /tmp/postfix/postdrop <> /tmp/postfix/pwned EOF $ chmod -R 0755 /tmp/postfix $ apparmor_parser -K -o sudo.pf < /sys/kernel/security/apparmor/.replace Mot de passe : $ env -i MAIL_CONFIG=/tmp/postfix /usr/bin/sudo whatever sudo: PERM_SUDOERS: setresuid(-1, 1, -1): Opération non permise sudo: impossible d'ouvrir /etc/sudoers: Opération non permise sudo: setresuid() [0, 0, 0] -> [1001, -1, -1]: Opération non permise sudo: erreur lors de l'initialisation du plugin d'audit sudoers_audit $ cat /tmp/postfix/pwned uid=0(root) gid=1001(jane) groupes=1001(jane),100(utilisateurs)

Parmi d'autres moyens d'élévation de privilèges, on évoque les vulnérabilités dans le code AppArmor, qui fonctionne au niveau du noyau Linux. Il est démontré comment obtenir des droits root grâce à des vulnérabilités causées par une double exécution de la fonction free() et des accès à une zone mémoire déjà libérée (use-after-free) dans le code de chargement et de remplacement des profils AppArmor. Par exemple, AppArmor conserve le profil dans la structure aa_loaddata, la mémoire pour laquelle est allouée dans le cache slab kmalloc-192, et en raison d'une condition de course, il n'est pas exclu d'accéder à la mémoire occupée par la structure après sa libération. Ce problème peut être exploité pour obtenir le contrôle de la mémoire libérée et réattribuer la page mémoire libérée pour mapper le contenu du fichier /etc/passwd et réécrire la ligne avec le mot de passe root.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster