Une vulnérabilité ssh-keysign-pwn a été corrigée sous Linux, permettant aux utilisateurs locaux de lire des fichiers root

Une vulnérabilité a été corrigée dans le noyau Linux, surnommée de manière non officielle ssh-keysign-pwn. Ce problème permet à un utilisateur local non privilégié de lire des fichiers qui devraient être accessibles uniquement par root, y compris des clés d'hôte SSH privées et, dans certains scénarios, /etc/shadow. À l'heure de la publication, un CVE distinct pour le problème n'avait pas encore été attribué.

Malgré son nom, il ne s'agit pas d'une erreur dans OpenSSH en tant que serveur réseau sshd, mais d'un défaut dans la logique du noyau Linux, liée aux vérifications ptrace et à l'accès aux descripteurs de fichiers d'un autre processus via pidfd_getfd(2). L'outil OpenSSH ssh-keysign s'est avéré un exemple pratique d'exploitation, car il fonctionne avec des clés d'hôte privées, qui appartiennent généralement à root et ne sont pas accessibles aux utilisateurs ordinaires.

L'essence de l'erreur est que la fonction __ptrace_may_access() traitait incorrectement l'état d'un processus dont la structure de mémoire mm avait déjà disparu, mais qui avait encore des descripteurs de fichiers ouverts. Lors de l'achèvement du processus, le noyau appelle exit_mm() avant de fermer les fichiers via exit_files(). Pendant ce court laps de temps, le processus semble ne pas avoir d'espace d'adressage d'utilisateur ordinaire, mais ses fichiers ouverts existent encore. Cela signifie que la vérification de l'état « dumpable » pouvait être contournée, et pidfd_getfd() pouvait accéder à un descripteur de fichier d'un autre processus ayant le même UID.

Un scénario pratique tourne autour des programmes setuid, qui ouvrent d'abord un fichier sensible avec des droits root, puis révoquent les privilèges et se terminent, tout en ayant encore un descripteur ouvert. Dans la description publiée, ssh-keysign est donné comme exemple : il ouvre /etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key, avant de révoquer les droits et peut se terminer si EnableSSHKeysign est désactivé. Ces clés ne doivent être accessibles qu'à root, car elles sont utilisées pour l'authentification basée sur l'hôte.

Un deuxième exemple est chage, qui peut ouvrir /etc/shadow, puis révoquer les droits effectifs et se terminer. En conséquence, l'attaque ne donne pas nécessairement immédiatement un shell avec des droits root, mais permet d'accéder au contenu de fichiers, généralement considéré comme hautement confidentiels. La fuite de /etc/shadow est dangereuse en raison de la possibilité d'une attaque par force brute hors ligne ultérieure, tandis que la fuite de clés d'hôte SSH privées représente un risque de remplacement d'hôte ou d'attaques sur des scénarios SSH de confiance.

La correction a déjà été intégrée dans la branche principale de Linux. Le commit 31e62c2ebbfd avec le titre ptrace : logique ‘get_dumpable()’ légèrement plus raisonnable modifie le comportement de la vérification de la dumpabilité : le noyau conserve désormais l'état user_dumpable lors de la disparition de mm et exige une vérification correcte de CAP_SYS_PTRACE pour contourner. Le patch concerne include/linux/sched.h, kernel/exit.c et kernel/ptrace.c.

La vulnérabilité a été signalée par Qualys et corrigée par Linus Torvalds le 14 mai 2026. Phoronix note qu'au moment de la publication, le problème touchait toutes les versions du noyau Linux jusqu'à l'état actuel de l'arbre mainline avant le correctif. L'auteur du PoC indique également que les noyaux jusqu'au commit 31e62c2ebbfd sont vulnérables, y compris les branches stables à la date du 14 mai.

Il est particulièrement important de noter qu'aucun module spécifique du noyau n'est nécessaire pour l'exploitation, contrairement à plusieurs récentes vulnérabilités LPE. Un simple accès local non privilégié au système et la présence d'un processus helper privilégié adéquat suffisent. Le développeur de Debian, Daniel Baumann a souligné, que ce problème doit être corrigé par une mise à jour du noyau et un redémarrage dans le noyau corrigé.

Dans le dépôt publié avec la démonstration, une vérification est déclarée sur Raspberry Pi OS Bookworm avec le noyau 6.12.75, Debian 13, Ubuntu 22.04, Ubuntu 24.04, Ubuntu 26.04, Arch et CentOS 9. Cette liste doit être considérée comme donnée par l'auteur du PoC et non comme un inventaire complet : puisque l'erreur réside dans la logique générale du noyau, la portée réelle dépend de la version du noyau et de la disponibilité du correctif backport pour la distribution spécifique.

Pour les administrateurs, la recommandation principale est simple : installer le paquet noyau mis à jour de leur distribution et redémarrer le système. S'il y a des raisons de croire qu'un accès local non privilégié d'un attaquant a eu lieu sur la machine, après la mise à jour, il convient de considérer également la rotation des clés d'hôte SSH et la vérification des comptes dans /etc/shadow, car la vulnérabilité elle-même est liée à la lecture de fichiers sensibles, et non seulement à un contournement abstrait de la vérification d'accès.

Debian a déjà commencé à travailler sur le portage du correctif : Baumann a signalé un cherry-pick du commit upstream dans trixie-fastforward-backports et l'envoi d'une demande de fusion pour Debian sid. Dans la demande de fusion, il est clairement indiqué que le commit 31e62c2 est transféré pour corriger la logique ptrace de la dumpabilité, permettant à un utilisateur non privilégié de lire des fichiers root.

Source : linux.org.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