Die LPE-Sicherheitsanfälligkeit CIFSwitch in Linux CIFS/cifs-utils wurde bekannt gegeben.

Sicherheitsforscher Asim Manizada hat eine Schwachstelle aufgedeckt CIFSwitch – lokale Privilegienerweiterung in der Verbindung zwischen dem Linux-Kernel und dem Benutzermodul cifs-utils. Das Problem betrifft den Verarbeitungsweg CIFS/SMB Kerberos/SPNEGO upcall, also den Mechanismus, über den der CIFS-Kernel-Client vom Benutzerdienstprogramm Daten für die Kerberos-Authentifizierung beim Mounten von SMB-Ressourcen anfordert. Die Beschreibung wurde nach Ablauf des Embargos für linux-distros veröffentlicht; die CVE-ID war zum Zeitpunkt der Veröffentlichung noch nicht vergeben.

Der Wesenskern der Schwachstelle ist, dass ein unprivilegierter Benutzer request_key("cifs.spnego", …) aufrufen und eine gefälschte Beschreibung des Schlüssels übermitteln konnte. In einem normalen Szenario sollte eine solche Zeichenkette vom CIFS-Kernel-Client selbst generiert werden: Sie enthält Informationen über den Server, UID, credential UID, PID, Ziel-upcall und andere Parameter. Der Kernel überprüfte jedoch nicht, dass die Beschreibung tatsächlich aus dem CIFS-Subsystem stammte, und cifs.upcall, das als root über die Standardregel request-key ausgeführt wurde, vertraute diesen Feldern als von dem Kernel erzeugten Daten.

Die Schwachstelle ist nicht universell eine „Lücke in jeder Linux-Distribution von Haus aus“. Für die Ausnutzung müssen mehrere Bedingungen erfüllt sein: ein verwundbarer Kernel, installierte cifs-utils mit der Regel cifs.spnego, die Möglichkeit für unprivilegierte Benutzer, user/mount-namespaces zu erstellen, sowie keine Blockade seitens von SELinux, AppArmor oder einer anderen LSM-Politik. In der Nachricht in oss-security wird ausdrücklich darauf hingewiesen, dass dies auf verwundbaren Systemen einen Weg vom unprivilegierten lokalen Benutzer zur Ausführung von Code mit root-Rechten eröffnet.


Technisch gesehen baut die Kette darauf auf, dass cifs.upcall in die in der gefälschten Beschreibung angegebenen Namensräume wechseln kann und NSS-Anfragen bis zum endgültigen Rücksetzen der Privilegien ausführen kann. Infolgedessen kann die vom Angreifer kontrollierte Umgebung die Ladezeit des NSS-Moduls durch den root-Prozess beeinflussen. In öffentlichen Beschreibungen wird betont, dass es sich hierbei um einen logischen Fehler an der Grenze zwischen Kernel und Nutzerraum handelt und nicht um eine klassische Schwachstelle durch Speicherbeschädigung.

Die Korrektur im Kernel war geringfügig: Für die Schlüsselkategorie cifs.spnego wurde eine Prüfung hinzugefügt, die Beschreibungen ablehnt, die nicht vom CIFS-Client selbst mit seinen privaten spnego_cred erstellt wurden. Dieser Ansatz schließt eine Klasse von Angriffen ohne zwingende synchrone Änderungen an cifs-utils aus, obwohl der Autor anmerkt, dass eine zusätzliche Verstärkung des Nutzerraums dennoch wünschenswert ist.

AlmaLinux hat berichtet, dass die grundlegende Logik in allen unterstützten Versionen von AlmaLinux vorhanden ist, und AlmaLinux 8, 9, 10 sowie Kitten 10 als betroffen gelten, wenn cifs-utils installiert ist. Die gepatchten Kernel wurden in den Testing-Repositories bereitgestellt: für AlmaLinux 9 ist das Paket kernel-5.14.0-687.5.4.el9_8 oder neuer angegeben, für AlmaLinux 10 – kernel-6.12.0-211.7.4.el10_2 oder neuer.

Als vorübergehende Maßnahme bis zur Installation des korrigierten Kernels wird empfohlen, cifs-utils zu entfernen, wenn der SMB/CIFS-Client im System nicht verwendet wird, das Laden des cifs-Moduls zu verbieten, die Regel cifs.spnego im request-key zu überschreiben oder nicht privilegierte Benutzernamespaces zu deaktivieren. Diese Workarounds können die Kerberos-Authentifizierung für CIFS-Mounts unterbrechen, daher sollten sie vorsichtig auf Servern angewendet werden, auf denen Kerberos-authentifizierte SMB-Freigaben tatsächlich genutzt werden.

CIFSwitch ist auch im Kontext der Entdeckung interessant: Der Autor beschreibt es als Ergebnis der Suche nach mehrstufigen Ketten unter Verwendung von LLM und einer graphischen Darstellung der Verbindungen zwischen Sicherheitsobjekten. Der praktische Schluss für Administratoren ist jedoch ganz pragmatisch: Überprüfen Sie das Vorhandensein von cifs-utils, den Zustand der BenutzerNamespaces und die Kernel-Updates, insbesondere auf Systemen mit lokalen Benutzern oder Container-Szenarien mit erweiterten Namespace-Möglichkeiten.

Quelle: linux.org.ru

60GB SSD 8Gb DDR4