Die Linux-Distributionen sind dabei, Patches herauszugeben, um eine neu entdeckte Sicherheitslücke im Kernel zu schließen, die es einem Angreifer ermöglichen könnte, beliebige Daten in beliebige schreibgeschützte Dateien zu überschreiben und betroffene Systeme komplett zu übernehmen.
Die von IONOS-Softwareentwickler Max Kellermann als „Dirty Pipe“ (CVE-2022-0847, CVSS-Score: 7.8) bezeichnete Schwachstelle „führt zu einer Privilegienerweiterung, da unprivilegierte Prozesse Code in Root-Prozesse einschleusen können.“
Kellermann sagte, dass der Fehler entdeckt wurde, nachdem er ein Support-Problem untersucht hatte, das von einem Kunden des Cloud- und Hosting-Anbieters aufgeworfen wurde und eine „überraschende Art von Korruption“ betraf, die die Zugriffsprotokolle des Webservers betraf.
Die Schwachstelle im Linux-Kernel soll seit Version 5.8 bestehen und ähnelt der Schwachstelle von Dirty Cow (CVE-2016-5195), die im Oktober 2016 bekannt wurde.
„Es wurde ein Fehler in der Art und Weise gefunden, wie das ‚flags‘-Mitglied der neuen Pipe-Pufferstruktur in den Funktionen copy_page_to_iter_pipe und push_pipe im Linux-Kernel nicht richtig initialisiert wurde und daher veraltete Werte enthalten konnte“, erklärte Red Hat in einem am Montag veröffentlichten Advisory.
„Ein nicht privilegierter lokaler Benutzer könnte diesen Fehler ausnutzen, um auf Seiten im Seitencache zu schreiben, die durch schreibgeschützte Dateien gesichert sind, und so seine Privilegien auf dem System ausweiten“, heißt es weiter.
Pipe, die Abkürzung für Pipeline, ist ein unidirektionaler Kommunikationsmechanismus zwischen Prozessen, bei dem eine Reihe von Prozessen so miteinander verkettet werden, dass jeder Prozess die Eingaben des vorherigen Prozesses entgegennimmt und die Ausgaben für den nächsten Prozess produziert.
Um die Schwachstelle auszunutzen, müssen folgende Schritte durchgeführt werden: Erstellen einer Pipe, Füllen der Pipe mit beliebigen Daten, Entleeren der Pipe, Spleißen von Daten aus der schreibgeschützten Zieldatei und Schreiben beliebiger Daten in die Pipe, so Kellerman in einem Proof-of-Concept (PoC)-Exploit, der die Schwachstelle demonstriert.
Einfach ausgedrückt: Die Schwachstelle ist hochriskant, da sie es einem Angreifer ermöglicht, eine Reihe von böswilligen Aktionen auf dem System durchzuführen. Dazu gehören die Manipulation sensibler Dateien wie /etc/passwd, um das Passwort eines Root-Benutzers zu entfernen, das Hinzufügen von SSH-Schlüsseln für den Fernzugriff und sogar das Ausführen beliebiger Binärdateien mit den höchsten Privilegien.
„Um diese Schwachstelle noch interessanter zu machen, funktioniert sie nicht nur ohne Schreibrechte, sondern auch mit unveränderlichen Dateien, auf schreibgeschützten btrfs-Snapshots und auf schreibgeschützten Mounts (einschließlich CD-ROM-Mounts)“, so der Forscher. „Das liegt daran, dass der Page Cache immer beschreibbar ist (durch den Kernel) und beim Schreiben in eine Pipe keine Berechtigungen geprüft werden.“
Das Problem wurde in den Linux-Versionen 5.16.11, 5.15.25 und 5.10.102 am 23. Februar 2022 behoben, drei Tage nachdem es dem Linux-Kernel-Sicherheitsteam gemeldet wurde. Google seinerseits hat die Korrekturen am 24. Februar 2022 in den Android-Kernel integriert.
Angesichts der Leichtigkeit, mit der die Sicherheitslücke ausgenutzt werden kann, und der Veröffentlichung des PoC-Exploits wird empfohlen, Linux-Server sofort zu aktualisieren und die Patches für andere Distributionen anzuwenden, sobald sie verfügbar sind.