Vulnérabilité dans systemd-coredump, permettant de déterminer le contenu de la mémoire des programmes suid

Une vulnérabilité (CVE-2022-4415) a été identifiée dans le composant systemd-coredump, qui traite les fichiers principaux générés après le crash des processus, permettant à un utilisateur local non privilégié de déterminer le contenu de la mémoire des processus privilégiés exécutés avec l'indicateur suid root. Le problème de configuration par défaut a été confirmé sur les distributions openSUSE, Arch, Debian, Fedora et SLES.

La vulnérabilité est causée par le manque de traitement correct du paramètre sysctl fs.suid_dumpable dans systemd-coredump, qui, lorsqu'il est défini sur la valeur par défaut de 2, permet la génération de core dumps pour les processus avec l'indicateur suid. Il est entendu que les fichiers core des processus suid écrits par le noyau doivent avoir des droits d'accès définis pour permettre la lecture uniquement par l'utilisateur root. L'utilitaire systemd-coredump, qui est appelé par le noyau pour enregistrer les fichiers principaux, stocke le fichier principal sous l'ID racine, mais fournit en outre un accès en lecture basé sur l'ACL aux fichiers principaux en fonction de l'ID du propriétaire qui a initialement lancé le processus. .

Cette fonctionnalité vous permet de télécharger des fichiers principaux sans tenir compte du fait que le programme peut modifier l'ID utilisateur et s'exécuter avec des privilèges élevés. L'attaque se résume au fait qu'un utilisateur peut lancer une application suid et lui envoyer un signal SIGSEGV, puis charger le contenu d'un fichier core, qui comprend une tranche mémoire du processus lors d'une terminaison anormale.

Par exemple, un utilisateur peut exécuter « /usr/bin/su » et dans un autre terminal terminer son exécution avec la commande « kill -s SIGSEGV `pidof su` », après quoi systemd-coredump enregistrera le fichier core dans le /var /lib/systemd/ répertoire coredump, en définissant une ACL pour celui-ci qui permet la lecture par l'utilisateur actuel. Étant donné que l'utilitaire suid 'su' lit le contenu de /etc/shadow en mémoire, un attaquant peut accéder aux informations sur les hachages de mots de passe de tous les utilisateurs du système. L'utilitaire sudo n'est pas susceptible d'être attaqué, 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 qui a identifié le problème, la vulnérabilité est également affectée par la version 246. La vulnérabilité apparaît si systemd est compilé avec la bibliothèque libacl (par défaut dans toutes les distributions populaires). Le correctif est actuellement disponible sous forme de correctif. Vous pouvez suivre les correctifs dans les distributions sur les pages suivantes : Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Comme solution de contournement de sécurité, vous pouvez définir sysctl fs.suid_dumpable sur 0, ce qui désactive l'envoi de vidages au gestionnaire systemd-coredump.

Source: opennet.ru

Ajouter un commentaire