Im ksmbd-Modul, das eine in den Linux-Kernel integrierte Implementierung eines Datei-Servers auf Basis des SMB-Protokolls umfasst, wurde eine kritische SicherheitsanfĂ€lligkeit entdeckt, die es ermöglicht, remote die AusfĂŒhrung eigenen Codes mit Kernel-Rechten zu erreichen. Ein Angriff kann ohne Authentifizierung durchgefĂŒhrt werden, solange das ksmbd-Modul auf dem System aktiviert ist. Das Problem tritt seit Kernel 5.15 auf, der im November 2021 veröffentlicht wurde, und wurde ohne groĂe öffentliche Aufmerksamkeit in den Updates 5.15.61, 5.18.18 und 5.19.2, die im August 2022 erstellt wurden, behoben. Da der Sicherheits-CVE-Identifikator fĂŒr das Problem noch nicht vergeben wurde, gibt es derzeit keine genauen Informationen zur Behebung des Problems in den Distributionen.
Details zur Ausnutzung der SicherheitsanfĂ€lligkeit werden bisher nicht veröffentlicht; es ist nur bekannt, dass die AnfĂ€lligkeit durch den Zugriff auf einen bereits freigegebenen Speicherbereich (Use-After-Free) verursacht wird, da es an einer ĂberprĂŒfung der Existenz des Objekts vor der DurchfĂŒhrung von Operationen mit diesem mangelt. Das Problem hĂ€ngt damit zusammen, dass in der Funktion smb2_tree_disconnect() der Speicher, der fĂŒr die Struktur ksmbd_tree_connect reserviert war, freigegeben wurde, aber danach noch ein Zeiger vorhanden war, der bei der Verarbeitung bestimmter externer Anfragen verwendet wurde, die SMB2_TREE_DISCONNECT-Befehle enthielten.
Neben der erwÀhnten Schwachstelle im ksmbd wurden auch 4 weniger schwerwiegende Probleme behoben:
- ZDI-22-1688 â Remote-CodeausfĂŒhrung mit Kernel-Rechten aufgrund des Fehlens einer ĂberprĂŒfung der tatsĂ€chlichen GröĂe externer Daten vor dem Kopieren in einen zugewiesenen Puffer im Code. Die GefĂ€hrlichkeit der AnfĂ€lligkeit wird dadurch gemildert, dass ein Angriff nur von einem authentifizierten Benutzer durchgefĂŒhrt werden kann.
- ZDI-22-1691 â Remote-Datenleck aus dem Kernel-Speicher aufgrund unzureichender ĂberprĂŒfung der Eingabeparameter im Handler fĂŒr den SMB2_WRITE-Befehl (ein Angriff kann nur von einem authentifizierten Benutzer durchgefĂŒhrt werden).
- ZDI-22-1687 â Remote-DoS ĂŒber den Erschöpfung des verfĂŒgbaren Systemspeichers aufgrund unzureichender Freigabe von Ressourcen im Handler fĂŒr den SMB2_NEGOTIATE-Befehl (ein Angriff kann ohne Authentifizierung durchgefĂŒhrt werden).
- ZDI-22-1689 â Remote-Kernabsturz aufgrund unzureichender ĂberprĂŒfung der Parameter des SMB2_TREE_CONNECT-Befehls, was zu einem Lesen auĂerhalb des Puffers fĂŒhrt (ein Angriff kann nur von einem authentifizierten Benutzer durchgefĂŒhrt werden).
Die UnterstĂŒtzung fĂŒr den Betrieb eines SMB-Servers mithilfe des ksmbd-Moduls ist im Samba-Paket ab der Version 4.16.0 enthalten. Im Gegensatz zu einem im Benutzermodus laufenden SMB-Server ist ksmbd in Bezug auf Leistung, Speicherverbrauch und Integration mit erweiterten Kernfunktionen effizienter. Ksmbd wird als hochleistungsfĂ€hige und fĂŒr Embedded-GerĂ€te geeignete Erweiterung zu Samba prĂ€sentiert, die bei Bedarf in die Werkzeuge und Bibliotheken von Samba integriert werden kann. Die Autoren des ksmbd-Codes sind Namjae Jeon von Samsung und Hyunchul Lee von LG, und die Wartung im Kernel ĂŒbernimmt Steve French von Microsoft, der Maintainer der CIFS/SMB2/SMB3-Subsysteme im Linux-Kernel und ein langjĂ€hriges Mitglied des Samba-Entwicklungsteams, welcher einen bedeutenden Beitrag zur Implementierung der SMB/CIFS-ProtokollunterstĂŒtzung in Samba und Linux geleistet hat.
Quelle: opennet.ru
