🔍 Contexte
Publié le 27 mai 2026 par Asim Viladi Oglu Manizada sur son blog personnel, cet article détaille la découverte et l’exploitation d’une vulnérabilité d’élévation de privilèges locale (LPE) baptisée CIFSwitch, affectant le noyau Linux et le paquet cifs-utils. La découverte a été facilitée par l’utilisation d’agents LLM.
🐛 Description de la vulnérabilité
La vulnérabilité repose sur une chaîne de bugs logiques à l’intersection du module noyau CIFS et du helper userspace cifs.upcall fourni par cifs-utils :
- Le type de clé noyau
cifs.spnegone possédait pas de hook.vet_description, permettant à tout processus non privilégié d’appelerrequest_key("cifs.spnego", fake_description, ...)avec une description forgée. - Le mécanisme
/sbin/request-keylance alorscifs.upcallen tant que root selon la règle par défaut, même si la description ne provient pas du noyau CIFS. cifs.upcallparse les champspid,uid,creduidetupcall_targetde la description comme s’ils étaient produits par le noyau, sans validation.- Avec
upcall_target=appet unpidcontrôlé par l’attaquant, le helper root bascule dans le namespace de montage de l’attaquant viaswitch_to_process_ns(). - Avant le
setuid()final, un appelgetpwuid()traverse NSS, permettant le chargement d’un module NSS malveillant (libnss_pwn.so.2) depuis le namespace contrôlé par l’attaquant, exécuté en tant que root. - Le PoC exploite cela pour écrire une configuration
sudoers.daccordant les droits root à l’attaquant.
🛠️ Conditions d’exploitation
- Noyau vulnérable (bug présent depuis 2007)
- cifs-utils 6.14+ installé (ou versions antérieures avec backports de correctifs CVE)
- Possibilité pour les utilisateurs non privilégiés de créer des user namespaces et mount namespaces
- Politiques SELinux/AppArmor ne bloquant pas l’exploitation
🩹 Correctif
Le correctif noyau ajoute un hook .vet_description sur cifs_spnego_key_type qui rejette toute description ne provenant pas des credentials CIFS (spnego_cred). Le patch est en file d’attente pour le stable et l’embargo a été levé le 27 mai 2026. L’assignation CVE est en attente.
🌍 Distributions impactées
Exploitables par défaut : Linux Mint 21.3/22.3, CentOS Stream 9, Rocky Linux 9, Kali Linux (2021.4–2026.1), AlmaLinux 9.7, SLES 15 SP7/SAP 15 SP7, SLES SAP 16.
Exploitables si cifs-utils installé : Ubuntu 18.04/20.04/22.04/24.04, Debian 11/12/13, Pop!_OS, openSUSE Leap 15.6, Rocky Linux 8/9, Oracle Linux 8/9, Amazon Linux 2023.
Bloquées par défaut : Ubuntu 26.04, Fedora 40–44, CentOS Stream 10, Rocky Linux 10, AlmaLinux 10.1, Oracle Linux 10, openSUSE Tumbleweed/Leap 16.0, SLES 16.
Non affectées : Amazon Linux 2, Kali Linux 2019.4/2020.4 (cifs-utils trop ancien, sans le chemin de switch de namespace).
📄 Nature de l’article
Il s’agit d’une analyse technique détaillée combinant divulgation de vulnérabilité et description de la méthodologie de recherche (agents LLM + graphes sémantiques). Le but principal est de documenter la vulnérabilité, ses conditions d’exploitation, les distributions affectées et le correctif appliqué.
🧠 TTPs et IOCs détectés
TTP
- T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
- T1574.006 — Hijack Execution Flow: Dynamic Linker Hijacking (Persistence)
- T1548 — Abuse Elevation Control Mechanism (Privilege Escalation)
IOC
- Fichiers :
libnss_pwn.so.2 - Fichiers :
cifs.upcall - Chemins :
/etc/request-key.d/cifs.spnego.conf - Chemins :
/usr/sbin/cifs.upcall - Chemins :
/etc/nsswitch.conf
🟡 Indice de vérification factuelle : 50/100 (moyenne)
- ⬜ heyitsas.im — source non référencée (0pts)
- ✅ 16599 chars — texte complet (fulltext extrait) (15pts)
- ✅ 5 IOCs (IPs/domaines/CVEs) (10pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 3 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ pas de CVE à vérifier (0pts)
🔗 Source originale : https://heyitsas.im/posts/cifswitch/