Der technische Kern von CIFSwitch liegt im Authentifizierungsablauf beim Einbinden einer Freigabe. Dabei sendet das Subsystem einen request_key-Aufruf für einen cifs.spnego-Schlüssel. Die Anfrage prüft den Schlüssel im Userspace und ruft cifs.upcall als Root auf, um die Schlüsselbeschreibung zu zerlegen. Diese enthält Felder wie UID, PID, den Credential-Cache und den Namespace.

Laut Asim Viladi Oglu Manizada, Sicherheitsingenieur bei SpaceX, prüft der Kernel weder die Herkunft der Anfrage noch die der Schlüsselbeschreibung. Dadurch kann ein Angreifer die Funktion request_key direkt aufrufen und eigene Felder für die Schlüsselbeschreibung übergeben, womit er die Herkunftsprüfung von CIFS umgeht.

Da cifs.upcall mit Root-Rechten ausgeführt wird, wechselt das Hilfsprogramm in die Namespaces der PID, die in der manipulierten Schlüsselbeschreibung angegeben ist – und verschafft dem Angreifer so Root-Zugriff. Hinzu kommt: Bevor die Rechte wieder abgegeben werden, führt das Programm noch eine Kontoabfrage durch. Diese läuft über den Name Service Switch (NSS) und erlaubt das Laden von NSS-Modulen.

Diesen Umstand kann ein Angreifer ausnutzen, indem er eine gefälschte NSS-Konfigurationsdatei sowie ein NSS-Modul in seinem eigenen Namespace ablegt. In der Folge lädt das Hilfsprogramm den vom Angreifer kontrollierten Code mit Root-Rechten, so Manizada.

Beheben lässt sich die Schwachstelle dem Ingenieur zufolge, indem Schlüsselbeschreibungen nur dann als legitim gelten, wenn CIFS seine private spnego_cred verwendet, und indem im Userspace zusätzlich geprüft wird, ob die Schlüsselbeschreibung tatsächlich vom Kernel erzeugt wurde.

Betroffen sind bestimmte Versionen von Linux Mint, CentOS, Rocky Linux, Kali Linux, AlmaLinux und SLES SAP, bei denen cifs-utils standardmäßig installiert ist. Nach Angaben des Forschers sind einige Distributionen nur dann angreifbar, wenn cifs-utils manuell nachinstalliert wurde.

Viele Versionen von Ubuntu, Fedora, CentOS, Rocky Linux, AlmaLinux, Oracle Linux, openSUSE und SLES blockieren den Ausführungspfad hingegen standardmäßig. Amazon Linux 2 KVM sowie Kali Linux 2019.4 und 2020.4 sind nicht betroffen.

Große Linux-Distributionen haben in diesem Monat Korrekturen für die Schwachstelle ausgeliefert. Manizada hat darüber hinaus Proof-of-Concept-Code veröffentlicht, der Verteidigern helfen soll, Patches, Gegenmaßnahmen, Erkennungsregeln und die eigene Angreifbarkeit zu prüfen.