Vulnérabilité dans le sous-système pidfd de Linux, permettant de lire des fichiers inaccessibles à l'utilisateur.

Une cinquième vulnérabilité critique a été découverte dans le noyau Linux (1, 2, 3) au cours des deux dernières semaines, permettant à un utilisateur d'élever ses privilèges dans le système. Deux exploits opérationnels ont été publiés : sshkeysign_pwn permet à un utilisateur non privilégié de lire le contenu des clés SSH hôtes privées situées dans /etc/ssh/ssh_host_*_key, tandis que chage_pwn permet de lire le contenu du fichier /etc/shadow contenant les hachages des mots de passe des utilisateurs.

Les informations sur la vulnérabilité n'étaient pas prévues pour être divulguées, mais l'un des chercheurs en sécurité a pu déterminer la nature de la vulnérabilité, permettant de lire des fichiers accessibles uniquement à l'utilisateur root, par exemple, /etc/shadow, à partir d'un patch proposé pour le noyau. Dans le changement ajouté au noyau, la logique d'utilisation de la fonction get_dumpable() dans ptrace a été corrigée lors de la détermination du niveau d'accès dans la fonction ptrace_may_access().

La vulnérabilité est directement causée par une condition de course, permettant un accès non privilégié à un descripteur de fichier pidfd après l'accès à un fichier depuis un processus suid root. À l'instant entre l'ouverture du fichier et la réinitialisation des privilèges dans le programme suid (par exemple, via la fonction setreuid), une situation se produit où l'application ayant lancé le programme suid root peut accéder au fichier ouvert dans le programme suid via le descripteur pidfd, même si les droits d'accès au fichier ne le permettent pas.

La fenêtre d'exploitation surgit lorsque la fonction « __ptrace_may_access() » omet de vérifier l'accès au fichier si le champ task->mm est défini à NULL après l'exécution de exit_mm(), mais avant l'appel de exit_files(). À ce moment, l'appel système pidfd_getfd considère que l'identifiant de l'utilisateur (uid) du processus appelant correspond à l'identifiant autorisé à accéder au fichier. Il est intéressant de noter que le problème avait été soulevé pour la première fois en 2020, mais il est resté non corrigé.

Dans l'exploit qui accède au contenu de /etc/shadow, l'attaque consiste à exécuter de manière cyclique l'application /usr/bin/chage avec le flag suid root, qui lit le contenu de /etc/shadow. Une fois que le processus a bifurqué, un appel système pidfd_open est effectué et une recherche cyclique des descripteurs pidfd disponibles se fait via l'appel système pidfd_getfd, ainsi que leur vérification via /proc/self/fd. Dans l'exploit sshkeysign_pwn, des manipulations similaires sont effectuées avec le programme suid root ssh-keysign.

Aucun identifiant CVE n'a été attribué au problème pour le moment, et la mise à jour du noyau et des paquets dans les distributions n'a pas été publiée. Dans les noyaux 7.0.7, 6.18.30 et 6.12.88 publiés il y a quelques heures, la vulnérabilité n'a pas été corrigée. Au moment de la rédaction de l'actualité, seul un correctif peut être utilisé. Des contournements possibles pour bloquer la vulnérabilité sont discutés, tels que la définition de sysctl kernel.yama.ptrace_scope=3 ou la suppression du drapeau suid root des fichiers exécutables dans le système (au moins avec les utilitaires ssh-keysign et chage, utilisés dans les exploits).

Complément : La vulnérabilité a été attribuée à l'identifiant CVE-2026-46333. Des mises à jour pour le noyau Linux 7.0.8, 6.18.31, 6.12.89, 6.6.139, 6.1.173, 5.15.207 et 5.10.256 ont été formulées pour corriger la vulnérabilité. Le statut de correction des vulnérabilités dans les distributions peut être consulté sur les pages suivantes : Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch, Fedora.

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