Une vulnĂ©rabilitĂ© a Ă©tĂ© identifiĂ©e dans le composant systemd-coredump, responsable du traitement des fichiers core gĂ©nĂ©rĂ©s aprĂšs l'arrĂȘt anormal de processus (CVE-2022-4415). Cette vulnĂ©rabilitĂ© permet Ă un utilisateur local non privilĂ©giĂ© de dĂ©terminer le contenu de la mĂ©moire de processus privilĂ©giĂ©s exĂ©cutĂ©s avec le drapeau suid root. Il a Ă©tĂ© confirmĂ© que le problĂšme existe dans les distributions openSUSE, Arch, Debian, Fedora et SLES.
La vulnérabilité est due à un manque de traitement correct du paramÚtre sysctl fs.suid_dumpable dans systemd-coredump, qui, avec la valeur par défaut de 2, autorise la génération de core dumps pour les processus ayant le drapeau suid. Il est sous-entendu que les fichiers core des processus suid doivent avoir des permissions qui permettent uniquement à l'utilisateur root de les lire. L'outil systemd-coredump, qui est appelé par le noyau pour sauvegarder les fichiers core, enregistre le fichier core sous l'identifiant root, mais accorde également l'accÚs aux fichiers core basé sur les ACL, autorisant la lecture en fonction de l'identifiant de l'utilisateur qui a initialement lancé le processus.
Cette caractĂ©ristique permet de charger des fichiers core sans tenir compte du fait que le programme peut changer d'identifiant utilisateur et s'exĂ©cuter avec des privilĂšges Ă©levĂ©s. L'attaque consiste Ă ce qu'un utilisateur puisse lancer une application suid et lui envoyer un signal SIGSEGV, puis charger le contenu du fichier core, qui inclut un instantanĂ© de la mĂ©moire du processus au moment de l'arrĂȘt anormal.
Par exemple, un utilisateur peut exĂ©cuter « /usr/bin/su » et dans un autre terminal, mettre fin Ă son exĂ©cution avec la commande « kill -s SIGSEGV `pidof su` », aprĂšs quoi systemd-coredump sauvegardera le fichier core dans le rĂ©pertoire /var/lib/systemd/coredump, en dĂ©finissant un ACL permettant Ă l'utilisateur actuel de le lire. Puisque l'outil suid âsuâ accĂšde Ă la mĂ©moire du contenu de /etc/shadow, l'attaquant peut obtenir des informations sur les hachages de mots de passe de tous les utilisateurs du systĂšme. L'outil sudo n'est pas vulnĂ©rable Ă cette attaque, car il interdit la gĂ©nĂ©ration de fichiers core via ulimit.
Selon les développeurs de systemd, la vulnérabilité apparaßt à partir de la version 247 de systemd (novembre 2020), mais selon le chercheur ayant découvert le problÚme, la version 246 est également vulnérable. La vulnérabilité se manifeste lorsque systemd est compilé avec la bibliothÚque libacl (qui est par défaut dans toutes les distributions populaires). Un correctif est actuellement disponible sous la forme d'un patch. On peut suivre l'application du correctif dans les distributions sur les pages suivantes : Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Comme solution de contournement pour la protection, il est possible de définir sysctl fs.suid_dumpable sur 0, désactivant ainsi l'envoi de coredumps au gestionnaire systemd-coredump.
Source : opennet.ru
