Nutzt eine CIFS-Netzwerkfreigabe Kerberos zur Authentifizierung, fordert der Linux-Kernel ein Hilfsprogramm im Userspace an, das die Authentifizierung übernimmt. Die Werkzeugsammlung cifs-utils dient dabei als Vermittler. „Der Kernel fordert einen Schlüssel vom Typ cifs.spnego an, und die normale keyutils/request-key-Konfiguration führt cifs.upcall als Root aus, um das Kerberos-/SPNEGO-Material zu beschaffen oder zu erzeugen", erklärt Manizada.
Der Kern des Problems liegt laut dem Forscher darin, dass das CIFS-Subsystem des Kernels nicht überprüft, ob Anfragen nach einem cifs.spnego-Schlüssel tatsächlich vom CIFS-Client des Kernels stammen. Dadurch kann ein nicht privilegierter Nutzer eine gefälschte cifs.spnego-Anfrage erstellen und den regulären Authentifizierungsablauf auslösen.
In der Folge vertraut das mit Root-Rechten laufende Hilfsprogramm cifs.upcall Feldern, die der Angreifer kontrolliert, im Glauben, sie seien vom Kernel erzeugt worden. Durch den Missbrauch dieser Felder lässt sich ein Namespace-Wechsel erzwingen; löst der Angreifer anschließend eine NSS-Abfrage (Name Service Switch) aus, bevor die Privilegien fallengelassen werden, kann er ein bösartiges NSS-Modul laden und Code mit Root-Rechten ausführen.
Manizada zufolge wurde CIFSwitch bereits vor 19 Jahren, im Jahr 2007, eingeführt. Die Lücke sei „nicht universell": Ihre Ausnutzung hänge von mehreren Faktoren ab, etwa einer verwundbaren Kernel-Version, einer anfälligen cifs-utils-Version, der Verfügbarkeit von User-Namespaces sowie von SELinux-/AppArmor-Richtlinien, die den Angriff nicht unterbinden.
Diverse Versionen von Ubuntu, Debian, Pop!_OS, openSUSE, Oracle Linux und Amazon Linux könnten verwundbar sein, sofern cifs-utils installiert ist. Bei anderen Versionen verhindern die voreingestellten SELinux-/AppArmor-Konfigurationen eine Ausnutzung – darunter Ubuntu 26.04, Fedora 40–44, CentOS Stream 10, Rocky Linux 10, SLES 16, AlmaLinux 10 und openSUSE Leap 16. Nicht betroffen sind Amazon Linux 2 sowie Kali Linux 2019.4 und 2020.4, da deren cifs-utils-Versionen die Namespace-Switch-Funktion nicht enthalten.
Behoben wurde CIFSwitch durch einen Kernel-Patch, der die Herkunft von cifs.spnego-Anfragen überprüft (Upstream-Commit 3da1fdf); welche Kernel-Versionen diesen Patch enthalten, unterscheidet sich jedoch je nach Distribution. Manizada empfiehlt, das CIFS-Modul bei Nichtgebrauch zu deaktivieren oder auf eine Sperrliste zu setzen, das Paket cifs-utils bei fehlendem Bedarf zu entfernen und unprivilegierte User-Namespaces abzuschalten.
Zudem hat der Forscher einen Proof-of-Concept-Exploit veröffentlicht, mit dem Organisationen die Wirksamkeit eingespielter Patches und Gegenmaßnahmen überprüfen können. CIFSwitch reiht sich in eine Serie kürzlich offengelegter Lücken zur Rechteausweitung unter Linux ein, zu der auch „Copy Fail", „Dirty Frag", „Fragnesia", „DirtyDecrypt" und „PinTheft" gehören.
