Dirty Pipe Linux-Schwachstelle entdeckt

Die Dirty Pipe Linux Sicherheitslücke – CVE-2022-0847 – wurde von Max Kellermann,  Entwickler beim IONOS Tochterunternehmen CM4all im April 2021 entdeckt, aber es dauerte noch ein paar Monate, bis er herausfand, was tatsächlich passiert.

Kellermann erklärte, dass die Sicherheitslücke den Linux-Kernel 5.8 und spätere Versionen betrifft, aber in Linux 5.16.11, 5.15.25 und 5.10.102 behoben wurde.

„Alles begann vor einem Jahr mit einem Support-Ticket über korrupte Dateien. Ein Kunde beschwerte sich, dass die von ihm heruntergeladenen Zugriffsprotokolle nicht dekomprimiert werden konnten. Und tatsächlich gab es eine beschädigte Protokolldatei auf einem der Protokollserver; sie konnte dekomprimiert werden, aber gzip meldete einen CRC-Fehler. Ich konnte mir nicht erklären, warum sie beschädigt war, aber ich nahm an, dass der nächtliche Split-Prozess abgestürzt war und eine beschädigte Datei hinterlassen hatte. Ich korrigierte den CRC-Wert der Datei manuell, schloss das Ticket und vergaß das Problem bald wieder“, so Kellermann.

„Monate später passierte dies wieder und wieder. Jedes Mal sah der Inhalt der Datei korrekt aus, nur der CRC-Wert am Ende der Datei war falsch. Jetzt, da mehrere Dateien beschädigt waren, konnte ich tiefer graben und fand eine überraschende Art der Beschädigung. Es zeigte sich ein Muster.“

Kellermann fuhr fort zu zeigen, wie er das Problem entdeckte und wie jemand es möglicherweise ausnutzen könnte. Er nahm zunächst an, dass der Fehler nur ausgenutzt werden kann, während ein privilegierter Prozess die Datei schreibt, und dass es auf das Timing ankommt.

Später fand er jedoch heraus, dass es möglich ist, den Seiten-Cache auch ohne Schreibvorgänge und ohne zeitliche Beschränkungen „an (fast) beliebigen Stellen mit beliebigen Daten zu überschreiben.“

Um die Sicherheitslücke auszunutzen, muss der Angreifer über Leserechte verfügen, der Offset darf nicht auf einer Seitengrenze liegen, der Schreibzugriff darf keine Seitengrenze überschreiten und die Datei darf nicht in der Größe verändert werden.

„Um diese Sicherheitslücke auszunutzen, müssen Sie: Eine Pipe erstellen, die Pipe mit beliebigen Daten füllen (um das PIPE_BUF_FLAG_CAN_MERGE-Flag in allen Ringeinträgen zu setzen), die Pipe entleeren (wobei das Flag in allen struct pipe_buffer-Instanzen auf dem struct pipe_inode_info-Ring gesetzt bleibt), Daten aus der Zieldatei (die mit O_RDONLY geöffnet wurde) in die Pipe kurz vor dem Ziel-Offset spleißen [und] beliebige Daten in die Pipe schreiben“, erklärte er.

„Diese Daten werden die zwischengespeicherte Dateiseite überschreiben, anstatt eine neue anonyme struct pipe_buffer zu erstellen, da PIPE_BUF_FLAG_CAN_MERGE gesetzt ist. 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). Das liegt daran, dass der Seiten-Cache immer beschreibbar ist (durch den Kernel), und das Schreiben in eine Pipe prüft niemals irgendwelche Berechtigungen.“

Er teilte auch seinen eigenen Proof-of-Concept-Exploit mit. Der Fehlerbericht, der Exploit und der Patch wurden von Kellermann am 20. Februar an das Linux-Kernel-Sicherheitsteam gesendet. Der Fehler wurde auf dem Google Pixel 6 reproduziert und ein Fehlerbericht wurde an das Android-Sicherheitsteam gesendet.

Linux veröffentlichte Korrekturen (5.16.11, 5.15.25, 5.10.102) am 23. Februar und Google integrierte Kellermanns Fehlerbehebung am 24. Februar in den Android-Kernel. Kellermann und andere Experten verglichen die Schwachstelle mit CVE-2016-5195 „Dirty Cow“, sagten aber, dass sie noch einfacher auszunutzen sei.

Mike Parkin,  Senior Technical Marketing Engineer von Vulcan Cyber sagte, dass jeder Exploit, der Root-Zugriff auf ein Linux-System ermöglicht, problematisch sei. „Ein Angreifer, der Root-Zugriff erhält, erlangt die volle Kontrolle über das Zielsystem und kann diese Kontrolle nutzen, um auf andere Systeme zuzugreifen. Der mildernde Faktor bei dieser Schwachstelle ist, dass sie lokalen Zugriff erfordert, was das Risiko etwas verringert“, so Parkin.

„Die Eskalation von Privilegien zu Root (POSIX-Familie) oder Admin (Windows) ist oft die erste Priorität eines Angreifers, wenn er sich Zugang zu einem System verschafft, da er damit die volle Kontrolle über das Zielsystem erhält und seine Position auf andere Opfer ausweiten kann. Daran hat sich seit langem nichts geändert, und es ist unwahrscheinlich, dass sich dies in absehbarer Zukunft ändern wird.

Shweta Khare, Cybersecurity Evangelist bei Delinea, wies darauf hin, dass in diesem Jahr bereits mehrere Windows-Kernel-, DNS-Server-RCE- und Adobe-Schwachstellen mit hohem Schweregrad für Schlagzeilen gesorgt haben, da sie es Angreifern ermöglichen, erhöhte lokale System- oder Administratorrechte zu erlangen.

Betriebssystemfehler und Schwachstellen auf Anwendungsebene wie diese können es Angreifern ermöglichen, ihre Privilegien zu erhöhen, sich seitlich im Netzwerk zu bewegen, beliebigen Code auszuführen und Geräte komplett zu übernehmen, so Khare.

Jakob Jung

Recent Posts

Yippie-Ya-Yay, Schweinebacke!

Bruce Willis per Deepfake: Der Die Hard Star hat seine Persönlichkeitsrechte für einen digitalen Zwilling…

1 Tag ago

Quantum Builder verbreitet Trojaner

Der Remote Access Trojaner (RAT) Agent Tesla wird mittels Spear Phishing über einen im Dark…

1 Tag ago

Red Hat kündigt OpenStack Platform 17 an

Die neue Version der OpenStack Platform 17 unterstützt Service-Provider beim Aufbau umfangreicher, sicherer und moderner…

1 Tag ago

Digitale Souveränität gefordert

Auf dem IONOS Summit in der Messe Karlsruhe ging es um den Cloud-Markt und neue…

1 Tag ago

Google stellt Stadia ein

Google wird seinen Spieledienst Stadia am 18. Januar 2023 abschalten. Die Spieler erhalten ihr Geld…

1 Tag ago

Der Wandel ist die neue Konstante

Mitarbeiter verlassen sich heute auf digitale Tools am Arbeitsplatz, um entspannter zusammenzuarbeiten, aber gleichzeitig sind…

1 Tag ago