Sicherheitsanfälligkeit im ksmbd-Modul des Linux-Kernels, die es ermöglicht, remote eigenen Code auszuführen

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

60GB SSD 8Gb DDR4