Une vulnérabilité (CVE-2022-4415) a été identifiée dans le composant systemd-coredump, qui gère les fichiers core générés après un plantage de processus. Cette vulnérabilité permet à un utilisateur local non privilégié de déterminer le contenu de la mémoire des processus privilégiés exécutés avec le statut root SUID. La présence de ce problème dans la configuration par défaut a été confirmée sous openSUSE et Arch Linux. Debian, Fedora et SLES.
La vulnérabilité est due à une mauvaise gestion du paramètre sysctl fs.suid_dumpable dans systemd-coredump. Ce paramètre, défini par défaut à 2, permet la génération de vidages mémoire pour les processus dotés de l'indicateur suid. Il est implicite que les droits d'accès aux fichiers mémoire écrits par le noyau pour les processus suid doivent être définis pour autoriser la lecture uniquement par l'utilisateur root. L'utilitaire systemd-coredump, appelé par le noyau pour sauvegarder les fichiers mémoire, sauvegarde le fichier mémoire sous l'identifiant root, mais fournit également un accès aux fichiers mémoire via l'ACL, permettant ainsi la lecture à partir de l'identifiant du propriétaire ayant initialement lancé le processus.
Cette fonctionnalité permet de charger les fichiers core sans tenir compte du fait que le programme peut modifier l'identifiant utilisateur et s'exécuter avec des privilèges élevés. L'attaque consiste à lancer une application suid et à lui envoyer un signal SIGSEGV, puis à charger le contenu du fichier core, y compris une partie de la mémoire du processus lors d'un arrêt anormal.
Par exemple, un utilisateur peut exécuter « /usr/bin/su » et le terminer dans un autre terminal avec « kill -s SIGSEGV `pidof su` ». Après cela, systemd-coredump enregistre le fichier core dans le répertoire /var/lib/systemd/coredump, en définissant une liste de contrôle d'accès (ACL) autorisant la lecture par l'utilisateur actuel. Puisque l'utilitaire suid « su » lit le contenu de /etc/shadow en mémoire, un attaquant peut accéder aux informations relatives aux hachages de mots de passe de tous les utilisateurs du système. L'utilitaire sudo est inattaquable, car il interdit la génération de fichiers core via ulimit.
D'après les développeurs de systemd, cette vulnérabilité est présente depuis la version 247 (novembre 2020), mais selon le chercheur qui l'a découverte, la version 246 est également concernée. La vulnérabilité se manifeste lorsque systemd est compilé avec la bibliothèque libacl (par défaut dans toutes les distributions populaires). Un correctif est actuellement disponible sous forme de patch. Vous pouvez suivre l'état de déploiement du patch pour les différentes distributions sur les pages suivantes : Debian, UbuntuGentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Pour contourner ce problème, vous pouvez définir la valeur de sysctl fs.suid_dumpable à 0, ce qui désactive la transmission des fichiers de vidage au gestionnaire systemd-coredump.
Source: opennet.ru
