Im ksmbd-Modul, das eine integrierte Linux-Kernel-Implementierung eines SMB-basierten Dateiserverprotokolls umfasst, wurde eine kritische Sicherheitsanfälligkeit festgestellt, die es Angreifern ermöglicht, ihren Code mit Kernel-Rechten aus der Ferne auszuführen. Ein Angriff kann ohne Authentifizierung durchgeführt werden, solange das ksmbd-Modul auf dem System aktiviert ist. Das Problem tritt ab Kernel-Version 5.15 auf, die im November 2021 veröffentlicht wurde, und wurde in den Updates 5.15.61, 5.18.18 und 5.19.2, die im August 2022 erstellt wurden, ohne größere öffentliche Bekanntmachung behoben. Da der CVE-Identifikator für das Problem noch nicht vergeben wurde, gibt es derzeit keine spezifischen Informationen zur Behebung des Problems in den Distributionen.
Details zur Ausnutzung der Schwachstelle werden bislang nicht veröffentlicht, es ist jedoch bekannt, dass die Schwachstelle durch den Zugriff auf bereits freigegebenen Speicher (Use-After-Free) verursacht wird, da es an einer Überprüfung des Vorhandenseins eines Objekts vor der Durchführung von Operationen fehlte. Das Problem hängt damit zusammen, dass im Funktionsaufruf smb2_tree_disconnect() der für die Struktur ksmbd_tree_connect reservierte Speicher freigegeben wurde, allerdings blieb ein Zeiger bestehen, der bei der Verarbeitung bestimmter externer Anfragen verwendet wurde, die SMB2_TREE_DISCONNECT-Befehle enthielten.
Neben der bereits erwähnten Sicherheitsanfälligkeit in ksmbd wurden auch 4 weniger gefährliche Probleme behoben:
- ZDI-22-1688 — Fernzugriff auf Code mit Kernelrechten aufgrund fehlender Überprüfung von Dateiattributen zur Überprüfung der tatsächlichen Größe externer Daten vor dem Kopieren in einen zugewiesenen Puffer. Die Gefährlichkeit der Schwachstelle wird durch die Tatsache gemildert, dass ein Angriff nur von authentifizierten Benutzern ausgeführt werden kann.
- ZDI-22-1691 — Ferninformationsoffensive aus dem Kernel-Speicher aufgrund fehlerhafter Überprüfung der Eingabeparameter im SMB2_WRITE-Befehlsbehandler (ein Angriff kann nur von authentifizierten Benutzern durchgeführt werden).
- ZDI-22-1687 — Fernzugriff auf eine Denial-of-Service-Attacke durch Erschöpfung des verfügbaren Systemspeichers aufgrund fehlerhafter Freigabe von Ressourcen im SMB2_NEGOTIATE-Befehlsbehandler (ein Angriff kann ohne Authentifizierung durchgeführt werden).
- ZDI-22-1689 — Fernzugriff auf einen Kernel-Absturz aufgrund mangelnder Überprüfung der Parameter im SMB2_TREE_CONNECT-Befehl, was zu einem Lesen außerhalb des Puffers führt (ein Angriff kann nur von authentifizierten Benutzern durchgeführt werden).
Die Unterstützung für SMB-Serverbetrieb durch das Modul ksmbd ist seit der Samba-Version 4.16.0 verfügbar. Im Vergleich zu einem im Benutzermodus laufenden SMB-Server ist ksmbd in Bezug auf Leistung, Speicherverbrauch und Integration mit erweiterten Kernel-Funktionen effizienter. Ksmbd wird als leistungsstarke und einsatzbereite Erweiterung für Samba entwickelt, die bei Bedarf mit den Tools und Bibliotheken von Samba integriert werden kann. Die Autoren des ksmbd-Codes sind Namjae Jeon von Samsung und Hyunchul Lee von LG, während die Wartung im Kernel von Steve French von Microsoft übernommen wird, dem Maintainer der CIFS/SMB2/SMB3-Subsysteme im Linux-Kernel und einem langjährigen Mitglied des Samba-Entwicklungsteams, das maßgeblich zur Implementierung der Unterstützung für die SMB/CIFS-Protokolle in Samba und Linux beigetragen hat.
Quelle: opennet.ru
