Microsoft findet root-LĂĽcken in Linux
Sicherheitslücken in Linux könnten Nutzer etwa zum Ausführen von Code als root missbrauchen. Microsoft hat die Schwachstellen entdeckt und nennt sie Nimbuspwn.
Bei Code-Analysen hat Microsoft mehrere Sicherheitslücken in Linux entdeckt, durch die Angreifer etwa auf einem Linux-Desktop-System root-Rechte ergattern und somit die Kontrolle darüber übernehmen könnten. Dazu müssten sie die Schwachstellen verketten, die Microsoft unter dem Namen Nimbuspwn bündelt, und könnten schließlich Schadsoftware wie Backdoors einrichten oder andere schädliche Aktionen mit root-Privilegien ausführen.
Die Schwachstellen seien den Forschern bei Code-Analysen durch Lauschen am Systembus aufgefallen. Dabei fanden sie ein ungewöhnliches Muster in der systemd-Komponente networkd-dispatcher.
Kombinierte LĂĽcken
Bei der Prüfung des Programmflusses von networkd-dispatcher stießen sie auf mehrere Sicherheitsprobleme. Unter anderem auf Directory-Traversal-Lücken, Symlink-Race sowie Time-of-Check-Time-of-Use-Race-Conditions, die miteinander verknüpft zur Ausweitung der eigenen Rechte, dem Unterschieben von Malware oder andere bösartige Aktivitäten missbraucht werden könnten.
Durch Directory-Traversal-Lücken gelingt in der Regel ein unbefugter Zugriff auf Dateien. Bei einem Symlink-Race können Angreifer einen Symlink auf eine Datei anlegen, auf die sie eigentlich nicht zugreifen dürfen. Und bei einer Time-of-Check-Time-of-Use-Race-Condition (TOCTOU) vergeht zwischen einer Prüfung einer Datei und deren Nutzung Zeit, in der Angreifer die Datei durch etwa eine schädliche ersetzen können.
Ausnutzen der Schwachstellen
In der Meldung der Sicherheitslücken erläutert Microsoft auch konkret, wie Angreifer diese Schwachstellen zum Ausführen von Code als root ausnutzen können:
1. Der Angreifer muss ein Verzeichnis anlegen, etwa /tmp/nimbuspwn
. Darin erstellt er einen Symlink, etwa /tmp/nimbuspwn/poc.d
, der auf /sbin
verweist. Im Verzeichnis /sbin
liegen viele Dateien des Besitzers root. Das missbraucht den Symlink-Race.
2. FĂĽr jede Datei in /sbin
, die root gehört, platziert der Angreifer eine Datei gleichen Namens im Verzeichnis /tmp/nimbuspwn
. Im konkreten Beispiel gehört die ausführbare Datei /sbin/vgs
root, fĂĽr die ein Angreifer den gewĂĽnschten Code als /tmp/nimbuspwn/vgs
anlegt. Das hilft dem Angreifer später, das TOCTOU-Rennen zu gewinnen.
3. Ein Signal als OperationalState ../../../tmp/nimbuspwn/poc
senden. Das nutzt die Directory-Traversal-LĂĽcke, um aus dem Skript-Verzeichnis auszubrechen.
4. Der Signal-Handler des networkd-dispatcher schlägt zu und erstellt die Skript-Liste aus dem Verzeichnis /etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d
, was tatsächlich der Symlink /tmp/nimbuspwn/poc.d
auf das Verzeichnis /sbin
ist. Dadurch erstellt er eine Liste, die aus vielen ausführbaren Dateien besteht, die root gehören.
5. Nun muss der Angreifer schnell den Symlink /tmp/nimbuspwn/poc.d
auf /tmp/nimbuspwn
verbiegen. Dies nutzt die TOCTOU-Race-Condition aus, da sich der Skript-Pfad ändert, ohne dass der networkd-dispatcher dies mitbekäme.
6. Der networkd-dispatcher startet jetzt Dateien, die ursprĂĽnglich unter /sbin
lagen, nun aber unter /tmp/nimbuspwn
zu finden sind. Da der Dispatcher davon ausgeht, dass die Dateien root gehören, führt er sie mittels subprocess.Popen
als root aus. Damit hat der Angreifer die Schwachstellen erfolgreich ausgenutzt.
Updates schlieĂźen die SicherheitslĂĽcken
Microsofts Forscher weisen darauf hin, dass sie viele Dateien in dem /tmp/nimbuspwn
-Verzeichnis platzierten, um die Wahrscheinlichkeit zu erhöhen, das TOCTOU-Rennen zu gewinnen. In ihren Versuchen genügten dazu drei Versuche.
In ihrem Blog-Beitrag beschreiben die Sicherheitsforscher die Schwachstellen und deren Ausnutzung detaillierter. Die Sicherheitslücken haben CVE-Einträge erhalten, die jedoch bislang noch reserviert und nicht öffentlich einsehbar sind (CVE-2022-29799, CVE-2022-29800). Die konkrete Risiko-Einstufung nach CVSS liegt ebenfalls noch nicht vor. Der Maintainer von networkd-dispatcher, Clayton Craft, hat die Sicherheitslücken demzufolge inzwischen abgedichtet.
Linux-Administratoren sollten die Paketverwaltung der eingesetzten Distributionen nach Aktualisierungen suchen lassen, um ein bereitstehendes Update fĂĽr systemd oder networkd-dispatcher rasch zu installieren.
(dmk)