In der Anwendung smb4k, die in KDE zur Erkennung und Einbindung von SMB-Partitionen verwendet wird, wurden Sicherheitsanfälligkeiten entdeckt, die einen Zugriff mit Root-Rechten auf das System ermöglichen. Die Probleme wurden in der Version Smb4K 4.0.5 behoben. Der Status der neuen Paketversion oder der Erstellung von Patches in den Distributionen kann auf den folgenden Seiten überprüft werden: Debian, Ubuntu, Fedora, SUSE/openSUSE, Gentoo, Arch und FreeBSD.
Für die Ausführung privilegierter Aktionen in smb4k werden KAuth-Handler verwendet, die mit Root-Rechten ausgeführt werden. Die Sicherheitsanfälligkeiten sind im Handler Smb4KMountHelper vorhanden und resultieren daraus, dass die Funktionen zum Einbinden (CVE-2025-66003) und Auswerfen (CVE-2025-66002) von Netzwerkspeichersystemen die übergebenen Optionen an die Befehle mount.cifs und unmount.cifs nicht ordnungsgemäß gefiltert haben, wodurch es einem unprivilegierten Benutzer möglich war, beliebige Optionen über den Parameter mh_options an diese Befehle zu übergeben.
Wenn die Optionen „filemode=04777,uid=0“ gesetzt werden, erhält jede Datei im gemounteten Bereich das SUID-Root-Flag. Der Benutzer kann einen SMB-Server starten und sein eigenes Verzeichnis mit den erforderlichen ausführbaren Dateien mounten, die bei den Optionen „filemode=04777,uid=0“ mit Root-Rechten ausgeführt werden.
Im Handler Smb4KMountHelper wurden auch die Zielverzeichnisse nicht ordnungsgemäß überprüft, was es beispielsweise ermöglichte, ein eigenes SMB-Verzeichnis anstelle des Verzeichnisses /bin zu mounten und eine modifizierte Version von /bin/bash dort einzufügen. Darüber hinaus kann über den Parameter mh_krb5ticket der Pfad zur Kerberos-Anmeldeinformation geändert werden, um den Inhalt beliebiger Dateien, wie z. B. /etc/shadow, in stderr oder in ein öffentlich zugängliches Log auszugeben.
Die Schwachstelle in der Funktion Smb4KMountHelper::unmount() kann genutzt werden, um einen Denial-of-Service-Angriff durch das Aushängen von Systempartitionen auszulösen, indem der Inhalt des Parameters mh_mountpoint manipuliert wird. Interessanterweise gab es im Code eine Überprüfung des Partitionstyps, die nur cifs-, smbfs- und smb3-Partitionen durchließ, doch im if-Block zur Fehlerausgabe wurde die Anweisung „return“ ausgelassen, sodass die Ausführung nicht gestoppt wurde.
Quelle: opennet.ru
