Linux-Kernel-Lücke ermöglicht entfernte Codeausführung
Zusammenfassung
Die Zero Day Initiative meldete Ende 2022 eine Lücke im Linux-Kernel, über die angemeldete Nutzer aus der Ferne Daten auslesen und Code im Kernel ausführen konnten. Der Fehler steckte in ksmbd, dem SMB-Dateiserver, der seit Linux 5.15 direkt im Kernel läuft, bei der Verarbeitung von SMB2_TREE_DISCONNECT. ZDI stufte ihn zunächst mit der Höchstnote 10 ein und korrigierte später auf 9,6.
Was ist ksmbd?
SMB ist das Protokoll, über das Windows-Rechner Dateien im Netz freigeben. Unter Linux übernimmt das traditionell Samba, ein Programm, das als normaler Prozess läuft. ksmbd ist eine von Samsung entwickelte Alternative, die direkt im Kernel arbeitet und dadurch schneller sein soll. Sie kam 2021 mit Linux 5.15 in den offiziellen Kernel.
Der Preis für die Geschwindigkeit: Ein Fehler in ksmbd läuft nicht in einem abgeschotteten Prozess, sondern mit den höchsten Rechten des Systems. Genau das machte diese Lücke so gefährlich.
Wie gefährlich war es wirklich?
Die Lücke entstand, weil der Code vor einer Operation nicht prüfte, ob ein Objekt noch existierte. Ein Angreifer brauchte allerdings Zugangsdaten zum Server. Außerdem ist ksmbd ein Modul, das eigens eingerichtet und gestartet werden muss; wer Samba oder gar keinen SMB-Server nutzte, war nicht betroffen. Potenziell gefährdet waren Distributionen mit Kernel 5.15 oder neuer, etwa Ubuntu 22.04, Deepin Linux 20.3 und Slackware 15.
Was man daraus lernen kann
Neue Funktionen im Kernel bringen neue Angriffsfläche mit. Je mehr Netzwerkdienste direkt im Kernel laufen, desto größer ist der mögliche Schaden eines einzelnen Fehlers. Für ksmbd folgten in den Jahren danach weitere Sicherheitsmeldungen, was für junge Kernel-Komponenten nicht ungewöhnlich ist.
Ideen
- Ein Dateiserver im Kernel spart Kontextwechsel und kann schneller sein.
- Fehlende Prüfung, ob ein Objekt existiert, führt zu Speicherfehlern mit Codeausführung.
- Nicht geladene Module stellen keine Angriffsfläche dar.
Einsichten
- Geschwindigkeit im Kernel wird mit höherem Risiko bei Fehlern bezahlt.
- Ob eine Lücke relevant ist, hängt davon ab, ob die betroffene Komponente überhaupt läuft.
- Junge Komponenten brauchen Zeit und Prüfung, bis sie so robust sind wie bewährte Lösungen.
Fakten
- ksmbd wurde von Samsung entwickelt und kam mit Linux 5.15 in den Kernel.
- Die Bewertung wurde von CVSS 10 auf 9,6 korrigiert.
Referenzen
Bemerkungen
- Für die meisten Systeme mit Samba bestand keine Gefahr, da ksmbd dort nicht aktiv ist.
Empfehlungen
- Prüfe mit lsmod, ob ksmbd geladen ist, und entlade das Modul, wenn du es nicht brauchst.
- Gib SMB-Freigaben nie direkt ins Internet frei und halte den Kernel aktuell.
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.