Sicherheitslücke bei Linux entdeckt: Die Gefahren von Pwnkit
Sicherheitsforscher:innen von Qualys haben im Linux-Dienst Polkit (früher Policykit) eine Sicherheitslücke entdeckt (CVE-2021-4034), die sich leicht ausnutzen lassen dürfte, um Root-Rechte zu erlangen. Offenbar verbirgt sich die in der Theorie triviale Lücke bereits seit dem Jahr 2009 in der Binärdatei pkexe – es handelt sich demnach um einen Fehler der Programmiersprache C; auch gewisse Eigenheiten des Linux-Kernels selbst scheinen die Grundlage des Fehlers zu bilden.
Wo liegt die Gefahr der Sicherheitslücke?
Die Sicherheitslücke in Polkit, das auf nahezu allen Linux-Distributionen vorinstalliert ist, erlaubt Nutzer:innen das Ausweiten ihrer Rechte am System. Neben den meisten Linux-Desktop-Distributionen sind auch Servervarianten betroffen. Ausnutzen kann die Lücke jeder, dem es gelingt, pkexec mit einer leeren Anzahl von Argumenten (argc ist 0) aufzurufen. Daraus folgt, dass argv[0] gleich NULL ist, was wiederum zu einem Out-of-Bounds-Schreibzugriff führt, der dazu genutzt werden kann, Umgebungsvariablen zu überschreiben.
Das Tückische daran: Es reicht aus, dass die Software installiert ist, der Polkit-Daemon muss dafür nicht aktiv benutzt werden. Allerdings muss das System dazu vorher über eine weitere Lücke kompromittiert worden sein oder die Angreiferin oder der Angreifer muss einen Nutzeraccount auf dem System aufweisen. Ein Angriff aus der Ferne scheint laut Qualys unwahrscheinlich.
Wie reagiert Linux auf Pwnkit?
Während die Sicherheitsforscher:innen von Qualys die Lücke bereits im November 2021 entdeckten, wurden die Linux-Distributionen anscheinend erst vor zwei Wochen darüber informiert. Diese stellen inzwischen Patches und Updates bereit, um die Lücke zu 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 – der Komponente zwischen Hard- und Software, die für das Management von CPU- und Speicherressourcen zuständig ist, sodass Software ausgeführt werden kann – dem von OpenBSD angepasst wird, ist derzeit noch nicht bekannt.