Sicherheitslücke im ksmbd-Modul des Linux-Kernels, die es Ihnen ermöglicht, Ihren Code remote auszuführen

Im ksmbd-Modul wurde eine kritische Schwachstelle identifiziert, die eine Implementierung eines Dateiservers auf Basis des im Linux-Kernel integrierten SMB-Protokolls umfasst, das es Ihnen ermöglicht, Ihren Code aus der Ferne mit Kernel-Rechten auszuführen. Der Angriff kann ohne Authentifizierung durchgeführt werden, es reicht aus, dass 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 in den Updates 5.15.61, 5.18.18 und 5.19.2, die im August 2022 veröffentlicht wurden, stillschweigend behoben. Da die CVE-Kennung dem Problem noch nicht zugeordnet wurde, gibt es keine genauen Informationen darüber, wie das Problem in Distributionen behoben werden kann.

Details zur Ausnutzung der Schwachstelle wurden noch nicht bekannt gegeben; es ist lediglich bekannt, dass die Schwachstelle durch den Zugriff auf einen bereits freigegebenen Speicherbereich (Use-After-Free) verursacht wird, da die Existenz eines Objekts vor der Ausführung von Operationen nicht überprüft wird drauf. Das Problem ist auf die Tatsache zurückzuführen, dass die Funktion smb2_tree_disconnect() den für die Struktur ksmbd_tree_connect zugewiesenen Speicher freigegeben hat, danach aber immer noch ein Zeiger bei der Verarbeitung bestimmter externer Anforderungen mit SMB2_TREE_DISCONNECT-Befehlen verwendet wurde.

Zusätzlich zu der genannten Schwachstelle wurden in ksmbd auch 4 weniger gefährliche Probleme behoben:

  • ZDI-22-1688 – Remote-Codeausführung mit Kernel-Rechten, da der Dateiattribut-Verarbeitungscode die tatsächliche Größe externer Daten nicht überprüft, bevor er sie in einen dedizierten Puffer kopiert. Die Schwachstelle wird dadurch abgemildert, dass der Angriff nur von einem authentifizierten Benutzer durchgeführt werden kann.
  • ZDI-22-1691 – Remote-Informationsleck aus dem Kernel-Speicher aufgrund falscher Prüfung der Eingabeparameter im SMB2_WRITE-Befehlshandler (der Angriff kann nur von einem authentifizierten Benutzer ausgeführt werden).
  • ZDI-22-1687 – Remote-Denial-of-Service durch Erschöpfung des verfügbaren Speichers im System aufgrund falscher Ressourcenfreigabe im SMB2_NEGOTIATE-Befehlshandler (der Angriff kann ohne Authentifizierung durchgeführt werden).
  • ZDI-22-1689 – Absturz des Remote-Kernels aufgrund mangelnder ordnungsgemäßer Validierung der Parameter des Befehls SMB2_TREE_CONNECT, was zu einem Lesevorgang aus einem Bereich außerhalb des Puffers führt (der Angriff kann nur von einem authentifizierten Benutzer ausgeführt werden).

Unterstützung für den Betrieb eines SMB-Servers mit dem ksmbd-Modul ist seit Version 4.16.0 im Samba-Paket vorhanden. Im Gegensatz zu einem User-Space-SMB-Server ist ksmbd hinsichtlich Leistung, Speicherverbrauch und Integration mit erweiterten Kernel-Funktionen effizienter. Ksmbd wird als leistungsstarke, eingebettete Samba-Erweiterung angepriesen, die sich bei Bedarf in Samba-Tools und -Bibliotheken integrieren lässt. Der ksmbd-Code wurde von Namjae Jeon von Samsung und Hyunchul Lee von LG geschrieben und der Kernel wird von Steve French von Microsoft verwaltet, einem Betreuer der CIFS/SMB2/SMB3-Subsysteme im Linux-Kernel und einem langjährigen Mitglied des Samba-Entwicklungsteams , der maßgeblich zur Implementierung der Unterstützung der SMB/CIFS-Protokolle in Samba und Linux beigetragen hat.

Source: opennet.ru

Kommentar hinzufügen