la faille Linux de 19 ans qui donne les pleins pouvoirs

la faille Linux de 19 ans qui donne les pleins pouvoirs


Découverte par Asim Viladi Oglu Manizada, un ingénieur en sécurité de SpaceX, cette vulnérabilité ne résulte pas d’une erreur de programmation classique mais d’une cascade de failles logiques.

Son origine remonte à 2007. Elle réside dans le sous-système CIFS (Common Internet File System), le protocole permettant à Linux de communiquer avec des partages de fichiers réseau, notamment ceux de Windows.

Le problème est subtil : le noyau ne vérifie pas correctement l’origine des requêtes d’authentification. C’est une brèche béante pour qui sait comment l’exploiter.

Un attaquant avec des droits limités peut forger des requêtes d’authentification pour tromper un utilitaire système (cifs.upcall) et exécuter du code arbitraire avec les privilèges Root, compromettant totalement la machine.

Comment fonctionne l’attaque CIFSwitch exactement ?

L’attaque est un véritable château de cartes logique. Normalement, quand le kernel Linux a besoin de s’authentifier sur un partage réseau sécurisé avec Kerberos (un protocole d’authentification réseau), il fait appel à un programme auxiliaire nommé cifs.upcall.

Ce programme s’exécute avec les privilèges les plus élevés. La faille CIFSwitch (CVE-2024-40857) permet à un utilisateur local sans droits spécifiques de créer une fausse requête d’authentification et de l’envoyer directement à ce mécanisme. 


L’attaquant peut alors injecter ses propres paramètres dans cette requête falsifiée. Il peut notamment forcer `cifs.upcall` à basculer dans un espace de noms qu’il contrôle.

Pire encore, avant de réduire ses privilèges, l’utilitaire effectue une vérification via le Name Service Switch (NSS). L’attaquant n’a plus qu’à fournir une fausse configuration NSS pour charger un module malveillant. Le résultat est une escalade de privilèges directe, lui donnant la clé du royaume : un accès root.

Quelles sont les distributions Linux vulnérables à CIFSwitch ?

La vulnérabilité n’affecte pas tous les systèmes de manière uniforme. Sa réussite dépend d’une combinaison de facteurs : une version vulnérable du noyau, la présence du paquet `cifs-utils` et des politiques de sécurité (comme SELinux ou AppArmor) qui ne bloquent pas le chemin d’attaque.

Une liste non exhaustive des distributions confirmées comme vulnérables dans leur configuration par défaut a été publiée. On y retrouve des noms très populaires comme Linux Mint 21.3, CentOS Stream 9, Rocky Linux 9, AlmaLinux 9, Kali Linux (de 2021.4 à 2024.1) et SLES 15 SP7.

hacker

D’autres distributions comme certaines versions d’Ubuntu, Debian ou Oracle Linux peuvent également être à risque si le paquet `cifs-utils` y est manuellement installé.

À l’inverse, des systèmes comme Ubuntu 24.04, Fedora 40, ou CentOS Stream 10 sont protégés par défaut grâce à des politiques de sécurité plus restrictives. Un code de démonstration (Proof-of-Concept) a été rendu public, permettant aux administrateurs de tester si leurs systèmes sont touchés par cette grave faille de sécurité.

Comment se protéger contre cette vulnérabilité ?

La parade est déjà en marche. Un correctif a été intégré au kernel Linux principal. Il ajoute une vérification cruciale qui manquait : le noyau s’assure désormais que les requêtes d’authentification proviennent bien de son propre client CIFS, et non d’un utilisateur lambda.

La première chose à faire est donc d’appliquer les mises à jour de sécurité proposées par votre distribution dès qu’elles sont disponibles. C’est le rempart le plus efficace.

Pour ceux qui ne peuvent pas mettre à jour immédiatement, ou pour renforcer la sécurité, plusieurs mesures de mitigation sont possibles. Si vous n’utilisez pas les partages de fichiers réseau Windows, la solution la plus simple est radicale : désinstaller le paquet `cifs-utils` ou désactiver le module CIFS du noyau.

Une autre option consiste à désactiver la création d’espaces de noms utilisateur pour les utilisateurs non privilégiés, ce qui coupe l’herbe sous le pied de l’attaquant pour une escalade de privilèges. C’est une mesure très efficace mais qui peut avoir des effets de bord sur d’autres applications légitimes.

Quelle est la particularité de la découverte de cette faille ?

Au-delà de son ancienneté, la méthode de découverte de CIFSwitch est fascinante. Asim Manizada n’a pas passé des mois à auditer manuellement des millions de lignes de code. Il a utilisé un framework assisté par une intelligence artificielle.

Ce système a construit une carte sémantique des objets du noyau et de leurs interactions, un peu comme une carte de relations sociales. L’IA a ensuite parcouru ce graphique à la recherche d’incohérences logiques, comme un détective cherchant une faille dans un alibi.

C’est ainsi qu’elle a repéré le « maillon faible » : un composant privilégié (`cifs.upcall`) qui faisait une confiance aveugle à des données pouvant être créées par n’importe qui.

Cette approche change la donne pour la recherche de vulnérabilités. Elle met en lumière l’ironie d’une machine trouvant une faille que des milliers d’yeux humains ont ignorée pendant près de 20 ans.

C’est une démonstration puissante de la capacité de l’IA à analyser des systèmes complexes et à identifier des chaînes de bugs logiques que même des experts chevronnés peuvent manquer.



Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.