Pwnkit: Triviale Linux-Lücke ermöglicht Root-Rechte
Zum Ausnutzen der Sicherheitslücke in Polkit muss der Dienst nur installiert sein. Das betrifft auch Serversysteme. Exploits dürften schnell genutzt werden.

Sicherheitsforscher von Qualys haben in dem sehr weit verbreiteten Linux-Dienst Polkit (früher Policykit) eine Sicherheitslücke entdeckt (CVE-2021-4034), die vergleichsweise trivial ist und sich deshalb leicht ausnutzen lassen dürfte, um Root-Rechte zu erlangen.
Der Code zum Ausnutzen der Lücke ist zwar noch nicht öffentlich verfügbar, wohl aber relativ leicht selbst zu erstellen und sei zu 100 Prozent zuverlässig, wie ein anderer Forscher schreibt. Mit Versuchen, die Lücke auszunutzen, dürfte also bald zu rechnen sein. Dazu muss das System aber bereits vorher über eine weitere Lücke kompromittiert worden sein oder der Angreifer muss einen Nutzeraccount auf dem System haben. Ein Angriff aus der Ferne ist nicht möglich.
Die Forscher nennen die Lücke Pwnkit und als Voraussetzung zum Ausnutzen reicht es laut den Ausführungen aus, dass die Software lediglich installiert ist, der Polkit-Daemon muss dafür nicht aktiv benutzt werden. Neben den meisten Linux-Desktop-Distributionen betrifft das auch Servervarianten. Golem.de konnte dies etwa für ein aktuelles Ubuntu-Server-System bestätigen, auf einem Debian-Server wiederum nicht. Bei Neuinstallationen von Debian wird die Software jedoch mitgeliefert und das System ist verwundbar. Auch die Serversysteme von Suse und Red Hat sind betroffen.
Triviale Lücke theoretisch schon länger bekannt
Konkret steckt die Sicherheitslücke in der Binärdatei pkexec, und zwar bereits seit dem Jahr 2009. Grundlage des Fehlers sind demnach typische Fehler der Programmiersprache C sowie gewisse Eigenheiten des Linux-Kernels selbst. Ausgenutzt werden kann die Lücke demnach, indem es gelingt, pkexec mit einer leeren Anzahl von Argumenten (argc ist 0) aufzurufen. Das wiederum führt dazu, dass argv[0] gleich NULL ist. Letztlich führt dies zu einem Out-of-Bounds-Schreibzugriff, der dazu genutzt werden kann, Umgebungsvariablen zu überschreiben.
Besonders gravierend an der Lücke ist, dass solch ein mögliches Angriffsszenario seit langem bekannt ist. So beschrieb der Entwickler und Sicherheitsforscher Ryan Mallon in seinem Blog dieses problematische Verhalten von argv[0] bereits im Jahr 2013. Mallon gelang es damals aber nicht, eine Binärdatei zu finden, die sich für einen erfolgreichen Angriff geeignet hätte.
Darüber hinaus schreiben die Forscher von Qualys aber auch, dass ein Ausnutzen der Lücke unter OpenBSD nicht möglich ist. Der einfache Grund dafür ist, dass die OpenBSD-Kernel-Funktion execve() Programme im Falle argc gleich 0 schlicht nicht ausführt. Dies wurde wohl aus Sicherheitserwägungen so umgesetzt. Unter Linux werden die Programme in solch einem Fall aber ausgeführt, was die Lücke letztlich ausnutzbar macht.
Entdeckt hat Qualys die Lücke eigenen Angaben zufolge bereits im vergangenen November, vor zwei Wochen seien zudem die Linux-Distributionen über die Lücke informiert worden. Diese stellen inzwischen Patches und Updates bereit, die die Lücke schließen. Auch im Polkit-Code selbst ist der Patch inzwischen öffentlich einsehbar. Das umfasst jedoch nur das Verhalten in pkexec.
Ob das Verhalten des Linux-Kernels darüber hinaus dem von OpenBSD angepasst wird, ist derzeit noch nicht bekannt. Einen Patch hierfür hat zumindest Ariadne Conill eingereicht, die das Sicherheitsteam der Linux-Distribution Alpine leitet. Demnach wurde die Änderung bereits 2008 erstmals diskutiert. Hier muss aber noch geklärt werden, ob Linux-Anwendungen auf das bisherige Verhalten angewiesen sind. Denn eine Änderung würde dann das Userspace-API des Linux-Kernels verändern, was allgemein nicht umgesetzt werden darf.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Verstehe Dein "Nöö" nicht: Was sind Backports anderes als...
Ganz einfach: Hier wurde ja offenbar *nicht* geprüft, ob denn überhaupt zwei Elemente...
..., dass die Lücke bis zum zweiten Dienstag nächsten Monats auf ist, weil das zufällig...
Ganz böse ausgedrückt: sudo mit XML und Javascript.