Publication d'une vulnérabilité LPE CIFSwitch dans Linux CIFS/cifs-utils

Chercheur en sécurité Asim Manizada a révélé une vulnérabilité CIFSwitch — élévation de privilèges localisée dans l'association du noyau Linux et du paquet utilisateur cifs-utils. Le problème concerne le chemin de traitement CIFS/SMB Kerberos/SPNEGO upcall, c'est-à-dire le mécanisme par lequel le client CIFS du noyau demande au helper utilisateur des données pour l'authentification Kerberos lors du montage des ressources SMB. La description a été publiée après l'expiration de l'embargo sur linux-distros; l'identifiant CVE n'avait pas encore été attribué au moment de la publication.

L'essence de la vulnérabilité est que, un utilisateur non privilégié pouvait appeler request_key("cifs.spnego", …) et fournir une description de clé falsifiée. Dans un scénario normal, cette chaîne devrait être formée par le propre client CIFS du noyau : elle contient des informations sur le serveur, l'UID, l'UID de l'identification, le PID, l'objectif de l'upcall et d'autres paramètres. Cependant, le noyau ne vérifiait pas que la description provenait réellement de la sous-système CIFS, et cifs.upcall, exécuté par root via la règle standard request-key, faisait confiance à ces champs en tant que données créées par le noyau.

La vulnérabilité n'est pas une « brèche dans n'importe quel Linux prêt à l'emploi ». Pour qu'elle soit exploitée, plusieurs conditions doivent coïncider : avoir un noyau vulnérable, cifs-utils installé avec la règle cifs.spnego, la possibilité pour les utilisateurs non privilégiés de créer des espaces de noms user/mount, ainsi que l'absence de blocage de SELinux, AppArmor ou d'une autre politique LSM. Dans un message sur oss-security, il est spécifiquement indiqué que sur les systèmes vulnérables, cela offre un chemin pour un utilisateur local non privilégié pour exécuter du code avec des privilèges root.


Techniquement la chaîne est construite autour de ce que, cifs.upcall peut entrer dans les espaces de noms indiqués dans la description falsifiée et effectuer une requête NSS jusqu'au rejet final des privilèges. En conséquence, un environnement contrôlé par l'attaquant peut influencer le chargement du module NSS par le processus root. Les descriptions publiques soulignent qu'il s'agit d'une erreur logique à l'interface entre le noyau et l'espace utilisateur, et non d'une vulnérabilité classique de corruption de mémoire.

La correction dans le noyau s'est avérée légère : une vérification a été ajoutée pour le type de clés cifs.spnego, rejetant les descriptions non créées par le propre client CIFS avec ses spnego_cred privés. Cette approche ferme la classe d'attaques sans modifications synchrones obligatoires dans cifs-utils, bien que l'auteur note qu'un renforcement supplémentaire de l'espace utilisateur reste souhaitable.

AlmaLinux a signalé, que la logique de base est présente dans toutes les versions prises en charge d'AlmaLinux, et qu'AlmaLinux 8, 9, 10 et Kitten 10 sont considérés comme concernés si cifs-utils est installé. Des noyaux patchés ont été préparés dans les dépôts de testing : pour AlmaLinux 9, le package kernel-5.14.0-687.5.4.el9_8 ou une version ultérieure est spécifié, pour AlmaLinux 10 – kernel-6.12.0-211.7.4.el10_2 ou une version ultérieure.

Comme mesure temporaire avant l'installation du noyau corrigé, il est suggéré de supprimer cifs-utils, si le client SMB/CIFS n'est pas utilisé sur le système, d'interdire le chargement du module cifs, de redéfinir la règle cifs.spnego dans request-key ou de désactiver les espaces de noms d'utilisateur non privilégiés. Ces solutions de contournement peuvent casser l'authentification Kerberos pour les montages CIFS, donc sur les serveurs où des partages SMB authentifiés par Kerberos sont réellement utilisés, elles doivent être appliquées avec précaution.

CIFSwitch est également intéressant par le contexte de découverte : l'auteur la décrit comme le résultat d'une recherche de chaînes en plusieurs étapes utilisant des LLM et une représentation graphique des relations entre les objets de sécurité. Mais la conclusion pratique pour les administrateurs est très terre à terre : vérifier la présence de cifs-utils, l'état des espaces de noms d'utilisateur et les mises à jour du noyau, en particulier sur les systèmes où il y a des utilisateurs locaux ou des scénarios de conteneurs avec des fonctionnalités avancées de namespace.

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