Die neu entdeckte Kernel-Schwachstelle CIFSwitch bedroht zahlreiche Linux-Distributionen über das Common Internet File System und veraltete Validierungen.
Ein neuer Sicherheitsmangel im Linux-Kernel gefährdet die Integrität zahlreicher Betriebssystem-Distributionen. Die als CIFSwitch bezeichnete Schwachstelle ermöglicht eine lokale Rechteausweitung, durch die unprivilegierte Benutzer administrative Root-Rechte erlangen können. Die Entdeckung und systematische Analyse der Sicherheitslücke wird Asim Viladi Oglu Manizada zugeschrieben, einem Sicherheitsingenieur des Raumfahrtunternehmens SpaceX.
Das Problem betrifft das Common Internet File System, kurz CIFS, ein Netzwerkprotokoll, das im Linux-Umfeld intensiv genutzt wird, um entfernte Dateifreigaben, Ordnerstrukturen und Netzwerkgeräte innerhalb lokaler Netzwerke zu mounten sowie Lese- und Schreibzugriffe auszuführen. Die Schwachstelle wird durch eine fehlerhafte Kombination des Kernel-eigenen CIFS-Subsystems mit den dazugehörigen Benutzeroberflächen-Werkzeugen der cifs-utils in den Versionen 6.14 und höher ausgelöst, wobei auch ältere Verzweigungen unter bestimmten Systembedingungen anfällig sind.
Angriff auf Linux-Kernel über Keyrings
Der Angriffsvektor nutzt das kryptografische Authentifizierungsverfahren von Netzwerkfreigaben aus, die über das Kerberos-Protokoll abgesichert sind. Wenn ein Linux-System eine Verbindung zu einer solchen geschützten Freigabe herstellt, delegiert der Kernel den Authentifizierungsprozess an ein Hilfsprogramm im Benutzerbereich. Als Vermittler dient hierbei die Werkzeugsammlung der cifs-utils. Der Kernel fordert in diesem Szenario einen Schlüssel des Typs cifs.spnego an. Über die standardmäßige Konfiguration des request-key-Mechanismus wird daraufhin das Hilfsprogramm cifs.upcall mit Root-Privilegien gestartet, um das erforderliche Kerberos- beziehungsweise SPNEGO-Material bereitzustellen oder zu generieren.
Der fundamentale Fehler im Linux-Kernel besteht darin, dass das CIFS-Subsystem zu keinem Zeitpunkt verifiziert, ob diese spezifischen Schlüsselanforderungen tatsächlich vom legitimen Kernel-eigenen CIFS-Client initiiert wurden. Ein lokaler, unprivilegierter Angreifer kann diese mangelhafte Absicherung ausnutzen, um eine gefälschte cifs.spnego-Anforderung zu erzeugen und so den regulären Authentifizierungs-Workflow des Kernels künstlich anzustoßen.
Namespace-Wechsel und Code-Ausführung über NSS-Module
Das Sicherheitsrisiko verschärft sich dadurch, dass das mit Root-Rechten ausgeführte Hilfsprogramm cifs.upcall den vom Angreifer kontrollierten Datenfeldern vertraut, da es fälschlicherweise davon ausgeht, dass diese direkt vom Kernel erzeugt und validiert wurden. Durch das gezielte Manipulieren dieser Felder kann der lokale Angreifer das Hilfsprogramm dazu zwingen, einen Namespace-Wechsel, also einen Wechsel des Namensraums, zu vollziehen. Bevor das System die administrativen Privilegien im weiteren Verlauf des Prozesses planmäßig wieder fallen lässt, initiiert der präparierte Ablauf eine Suchabfrage über das Name Service Switch-System, kurz NSS.
Da sich das Programm zu diesem Zeitpunkt in dem vom Angreifer manipulierten Namensraum befindet, wird eine manipulierte NSS-Bibliothek in den Speicher geladen. Dies ermöglicht dem Angreifer die Ausführung von beliebigem Schadcode direkt mit den Rechten des Root-Benutzers auf Betriebssystemebene. Obwohl der Fehler laut den Berichten des Entdeckers bereits vor 19 Jahren, im Jahr 2007, in den Quellcode eingeführt wurde, blieb er über fast zwei Jahrzehnte hinweg unbemerkt.
Linux Mint, CentOS Stream, Rocky Linux, AlmaLinux und Kali Linux betroffen
Die Ausnutzung von CIFSwitch ist nicht universell möglich, sondern an eine Reihe spezifischer Systemvoraussetzungen gekoppelt. Neben einer anfälligen Kernel-Version und den entsprechenden cifs-utils müssen auf dem Zielsystem unprivilegierte Benutzernamensräume aktiviert sein. Zudem dürfen die aktiven Sicherheitsrichtlinien von Systemen wie SELinux oder AppArmor den Angriffspfad nicht blockieren. Zu den Distributionen, die in ihrer Standardkonfiguration als verwundbar bestätigt wurden, gehören unter anderem Linux Mint in den Versionen 21.3 und 22.3, CentOS Stream 9, Rocky Linux 9, AlmaLinux 9, SLES 15 SP7 sowie Kali Linux in den Versionen von 2021.4 bis 2026.1.
Bei anderen gängigen Systemen wie bestimmten Versionen von Ubuntu, Debian, Pop!_OS oder openSUSE hängt die Verwundbarkeit maßgeblich davon ab, ob das Paket cifs-utils manuell nachinstalliert wurde. Im Gegensatz dazu sind moderne Distributionen wie Ubuntu 26.04, Fedora 40 bis 44, CentOS Stream 10, Rocky Linux 10 sowie SLES 16 in der Standardkonfiguration geschützt, da restriktivere Standardvorgaben von SELinux oder AppArmor den Exploit blockieren. Ältere Systeme wie Amazon Linux 2 sind ebenfalls immun, da den dort genutzten cifs-utils-Versionen die für den Angriff notwendige Funktionalität zum Namespace-Wechsel fehlt.
Sicherheitsmaßnahmen und Patch-Verfügbarkeit
Die Behebung der Schwachstelle erfolgt über einen offiziellen Kernel-Patch, welcher eine strikte Validierung der Ursprünge von cifs.spnego-Anforderungen implementiert. Der entsprechende Upstream-Commit wird im Git-Repository des Linux-Kernels unter der Kennung 3da1fdf geführt. Die Integration dieses Patches in die stabilen Kernel-Zweige der einzelnen Distributionen erfolgt zeitversetzt je nach den Update-Zyklen der jeweiligen Maintainer.
Für Systeme, für die noch keine bereinigten Kernel-Pakete zur Verfügung stehen, empfiehlt der Sicherheitsforscher temporäre Abschwächungsmaßnahmen. Wenn das CIFS-Modul auf einem Server oder einer Arbeitsstation nicht zwingend benötigt wird, sollte es über die Kernel-Konfiguration vollständig deaktiviert oder auf eine Blacklist gesetzt werden. Zudem sollte das cifs-utils-Paket deinstalliert werden, sofern keine dauerhaften Netzwerkfreigaben eingebunden sind. Als zusätzliche Schutzmaßnahme gilt die Deaktivierung unpriviligierter Benutzernamensräume im Betriebssystem. Die Bereitstellung eines Proof-of-Concept-Exploits ermöglicht es Administratoren parallel, die Effektivität eigener Schutzmaßnahmen lokal zu überprüfen.
(red)