Vulnérabilité critique du noyau Ubuntu permettant l’escalade de privilèges et l’accès root

Une vulnérabilité critique dans le noyau Linux d’Ubuntu vient d’être révélée, permettant à des attaquants locaux d’escalader leurs privilèges et potentiellement d’obtenir un accès root sur les systèmes affectés.

Divulguée lors de TyphoonPWN 2025, cette faille provient d’un déséquilibre dans le comptage de références au sein du sous-système af_unix, conduisant à une condition de type use-after-free (UAF) que les chercheurs ont démontrée avec un exploit complet en preuve de concept.

Ce problème affecte Ubuntu 24.04.2 exécutant la version du noyau 6.8.0-60-generic, soulignant les défis permanents dans la gestion des correctifs du noyau pour les distributions populaires.

Origine de la vulnérabilité

La cause profonde réside dans l’implémentation partielle par Ubuntu des correctifs du noyau Linux en amont visant à corriger les bogues de comptage de références dans les sockets de domaine af_unix, qui facilitent la communication inter-processus en permettant aux processus d’échanger des descripteurs de fichiers.

Historiquement, ce sous-système employait un mécanisme de collecte des ordures (garbage collection) pour gérer les références circulaires. Cependant, les récents changements en amont ont remplacé ce mécanisme par un nouvel algorithme tout en ajustant la façon dont les références hors bande (OOB) du buffer de socket (skb) sont gérées.

Plus précisément, les correctifs ont supprimé l’appel skb_get() dans la fonction queue_oob au sein de af_unix.c pour éviter des comptages de références inutiles sur u->oob_skb, un pointeur pour les données OOB envoyées via les drapeaux MSG_OOB, et ont en conséquence évité de le décrémenter lors de la collecte des ordures.

Le problème d’implémentation d’Ubuntu

Le noyau d’Ubuntu, basé sur une ancienne version 6.8.12, a conservé l’ancienne collecte des ordures mais n’a incorrectement appliqué que la modification d’af_unix.c, omettant les mises à jour de garbage.c.

Ce décalage entraîne la perte d’une référence pour oob_skb lors de l’allocation, mais deux décrémentations : une via kfree_skb dans unix_gc et une autre dans unix_release_sock lors de la fermeture du socket, déclenchant un UAF sur l’objet struct sk_buff de 256 octets provenant du slab skbuff_head_cache.

SSD Disclosure a noté que bien que les deux fonctions puissent libérer l’objet, l’exploitation pratique observe systématiquement la libération dans unix_gc suivie de l’utilisation dans unix_release_sock.

Technique d’exploitation

L’exploitation de cette faille nécessite de séparer les phases de libération et d’utilisation pour un UAF fiable, ce qui est réalisé en déclenchant la collecte des ordures immédiatement après la fermeture du socket via un compteur unix_tot_inflight élevé (supérieur à 16 000) lors d’un appel sendmsg ultérieur, qui invoque wait_for_unix_gc.

Pour combler l’écart temporel avant l’exécution de unix_release_sock en tant qu’élément de travail TWA_RESUME post-syscall, l’exploit arrête l’exécution en utilisant un buffer mmap’d du système de fichiers FUSE dans skb_copy_datagram_from_iter, mettant en veille le thread du noyau pendant plusieurs secondes via un gestionnaire FUSE_read personnalisé.

Une attaque cross-cache libère ensuite le slab dédié, récupérant la page avec des structures pg_vec contrôlées pulvérisées via des sockets de paquets sur l’interface de bouclage.

L’écrasement du skb libéré permet de contrôler son appel de destructeur dans skb_release_head_state, fournissant le détournement de RIP et RDI.

Contournement des protections

Le contournement de KASLR utilise une variante de canal auxiliaire par préchargement d’Entrybleed, employant une analyse statistique du timing sur les systèmes sans KPTI pour un succès à 100 %.

Enfin, les chaînes ROP écrasent modprobe_path vers “/tmp/x”, un script shell accordant l’accès root via l’invocation de usermodehelper.

La preuve de concept, un exploit C sophistiqué se compilant avec les utilitaires et composants FUSE fournis, démontre une escalade de privilèges complète, incluant la fuite KASLR, la pulvérisation et l’exécution de la charge utile.

Elle a remporté la première place dans la catégorie Linux de TyphoonPWN 2025, créditant le découvreur pour son analyse méticuleuse des composants internes du noyau.

Correctifs et recommandations

Canonical a réagi rapidement, publiant un noyau mis à jour le 18 septembre 2025, incorporant les correctifs complets en amont pour équilibrer les comptages de références dans les deux fichiers modifiés.

Les utilisateurs sur les versions affectées doivent mettre à jour immédiatement via la commande apt upgrade linux-generic, en vérifiant qu’ils disposent du noyau 6.8.0-61 ou ultérieur.

Cet incident souligne les risques du backporting sélectif dans les noyaux de distribution, incitant les administrateurs à surveiller de près les avis de sécurité.

Aucune exploitation à grande échelle n’a été signalée, mais la preuve de concept publique augmente l’urgence des correctifs dans les environnements d’entreprise.

cybersecurite.com
Résumé de la politique de confidentialité

Ce site utilise des cookies afin que nous puissions vous fournir la meilleure expérience utilisateur possible. Les informations sur les cookies sont stockées dans votre navigateur et remplissent des fonctions telles que vous reconnaître lorsque vous revenez sur notre site Web et aider notre équipe à comprendre les sections du site que vous trouvez les plus intéressantes et utiles.