Eine schwerwiegende Linux-Sicherheitslücke namens „Dirty Pipe“ könnte es selbst Nutzern mit den geringsten Berechtigungen ermöglichen, böswillige Aktionen auszuführen.
Der Ionos-Forscher Max Kellermann deckte auf die neue Sicherheitslücke Anfang dieser Woche. Der Name erinnert an die 2016 entdeckte Sicherheitslücke „Dirty Cow“, durch die Angreifer unabhängig von der Betriebssystemversion auf jedem Android-Smartphone Root-Zugriff erlangen konnten. Dirty Pipe könnte jedoch noch einfacher auszunutzen sein als sein Vorgänger.
Kellermann gelang es, den Fehler im Linux-Kernel auszunutzen. Dieser ermöglicht es jedem Nutzer, auch Nutzern mit den geringsten Berechtigungen wie dem Konto „nobody“, böswillige Aktionen auszuführen – etwa dem Root-Konto einen SSH-Schlüssel hinzuzufügen, um mit vollständigen Berechtigungen aus der Ferne auf den Server zuzugreifen.
Lesen Sie auch: Die besten Tools für das Schwachstellenmanagement
Was ist das Linux-Konto „nobody“?
Unix-Systeme verfügen traditionell über einen eigenen Benutzer namens nobody für bestimmte Vorgänge mit dem NFS (Network File System).
Dieser Pseudo-Benutzer ist das Konto mit den geringsten Berechtigungen. Es besitzt kein Passwort und buchstäblich keine Dateien. Das grundlegende Sicherheitsprinzip des PoLP (Principle of Least Privilege, Prinzip der geringsten Berechtigung), Zero Trust schreibt daher vor, dass ein Benutzer nur auf die Informationen und Ressourcen zugreifen kann, die er benötigt.
Eine Sicherheitslücke, durch die Konten mit den geringsten Berechtigungen Root-Rechte erlangen können, ist ein massives Versagen für ein so bedeutendes Betriebssystem wie Linux.
So funktioniert Dirty Pipe
Der Bericht zu den Common Vulnerabilities and Exposures (CVE) für die Sicherheitslücke, CVE-2022-0847, erklärt, wie Angreifer den Fehler ausnutzen können. Der Begriff „Pipe“ bezieht sich auf interne Mechanismen im Linux-Kernel, die als „Pipelines“ bezeichnet werden.
Kellermann entdeckte eine nicht initialisierte Variable im Kernel-Code, durch die ein Angreifer den Inhalt jeder Datei im Cache überschreiben könnte. Natürlich gibt es einige Voraussetzungen, doch der Angreifer benötigt keine Schreibberechtigungen; Lesezugriff genügt. Der Fehler betrifft außerdem System-Binärdateien und btrfs-Dateien.
Tatsächlich hat der Kernel dauerhaften Zugriff (zum Lesen und Schreiben) auf die Seiten im Cache. Der Kernel läuft stets mit maximalen Berechtigungen, daher findet auf dieser Ebene keine Überprüfung statt. Er bildet den Kern des Systems und hat Zugriff auf die Hardware.
Der Kernel verwendet Flags und Pipes, um Daten zwischen Prozessen zu übertragen. Kellermann erstellte für das Linux-Kernel-Sicherheitsteam einen Machbarkeitsnachweis (siehe Abbildung unten), bei dem er eine Pipe anlegte und mit beliebigen Daten füllte. Dadurch wurde das Flag PIPE_BUF_FLAG_CAN_MERGE aktiviert, was letztlich das Überschreiben der Seite der zwischengespeicherten Datei ermöglichte.
Allerdings stellte er einige Einschränkungen fest: Der Schreibvorgang konnte keine Seitengrenze überschreiten. Es war jedoch möglich, Dateien ohne Schreibberechtigungen zu verändern, und die Änderungen konnten alle Benutzer des Systems betreffen.
Dirty Pipe benötigt keine Berechtigungen eines legitimen Prozesses, um Daten in Dateien zu schreiben, und unterliegt keinerlei zeitlicher Einschränkung.

Siehe auch: Die 10 besten Open-Source-Tools für Penetrationstests
Was Angreifer mit Dirty Pipe tun könnten
Da Dirty Pipe einfacher auszunutzen ist als Dirty Cow und eine Eskalation der Berechtigungen auf Root-Ebene ermöglicht, handelt es sich um eine schwerwiegende Sicherheitslücke. Hacker würden sie wahrscheinlich für weitere Aufgaben nutzen, etwa zum Verändern gängiger Bibliotheken und zum Ausführen beliebigen Codes.
Das Überschreiben kann vorübergehend oder dauerhaft sein, und der Angreifer kann die Binärdateien eines Systems verändern, die eigentlich unveränderlich sein sollten. Jede bösartige Anwendung könnte ihre Berechtigungen ohne Zustimmung des Benutzers auf ein hohes Niveau erweitern.
Diese Sicherheitslücke eignet sich ideal für laterale Bewegungen, die Ausführung beliebigen Codes und die Verbreitung von Viren.
Ein solcher Angriff auf niedriger Ebene ist besonders attraktiv für Zero-Click-Angriffe. Zwischen dem ersten Support-Ticket zu einer „einfachen“ Dateibeschädigung und der abschließenden öffentlichen Bekanntgabe verging fast ein Jahr:

So finden und beheben Sie die Sicherheitslücke Dirty Pipe
Dieser kritische Fehler wurde in Linux behoben. Die gute Nachricht ist, dass der Fehler in Linux 5.8 eingeführt wurde, einer zum Zeitpunkt der Veröffentlichung relativ aktuellen Version. Hoffentlich sind daher nicht so viele Produktionsserver betroffen.
Nutzer der Version 5.8 müssen schnell aktualisieren; Nutzer neuerer Versionen müssen 5.16.11mindestens ebenfalls aktualisiert sein.
Google hat Android Ende Februar mit dem neuen Kernel-Code gepatcht. Dennoch sind Android-Geräte betroffen, darunter die aktuellen Pixel-Modelle (der Fehler wurde auf einem Google Pixel 6 nachgewiesen) und Samsung-Geräte (etwa das Galaxy 2022). Da das Android-Ökosystem mit verschiedenen alternativen Systemen auf Basis desselben Linux-Kernels stark fragmentiert ist, könnten viele Geräte mit dieser Sicherheitslücke betrieben werden.
Android-Nutzern wird dringend empfohlen, ihre Betriebssystemversion unter Einstellungen > Über das Telefon > Android-Version zu überprüfen.
Lesen Sie als Nächstes: Die beste Software für das Patchmanagement





