
Polkit, früher als PolicyKit bekannt, ist ein in vermutlich allen Linux-Distributionen verwendeter Berechtigungsdienst, der es ermöglicht, dass beim Aufruf eines Programms oder einer Systemkomponente nach dem Passwort eines höher privilegierten Nutzers gefragt wird. Es gewährt unter anderem Zugriff auf externe Geräte und USB-Sticks, verwaltet WLAN-Verbindungen und regelt den Schlafmodus und das Herunterfahren des Geräts.
Seit 2009
Jetzt wurde in der Polkit-Komponente pkexec ein Fehler entdeckt, der bereits seit der ersten Veröffentlichung von Polkit im Jahr 2009 dort schlummert und somit alle Versionen betrifft. Ähnlich wie Sudo regelt pkexec innerhalb von Polkit die Interaktion zwischen privilegierten und unprivilegierten Prozessen und erlaubt einem User, Befehle als ein anderer User auszuführen.
Die Ausnutzung der entdeckten Lücke versetzt einen lokalen unprivilegierten User mit wenig Aufwand in der Lage, volle Root-Rechte auf einer Maschine zu erlangen. Dazu muss nicht einmal der Polkit-Daemon laufen. So schreibt denn auch der Entdecker Gordon ‘Fyodor’ Lyon, Schöpfer von Nmap, diese Lücke sei der »Traum eines jeden Angreifers«.
Wie heutzutage üblich erhalten spektakuläre Lücken ihren eigenen Namen, und so wird diese Lücke als Pwnkit bezeichnet und ist als CVE-2021-4034 katalogisiert. Die Einstufung der Schwere ist bei Red Hat, wo Polkit entstand, mit der zweithöchsten Klassifizierung important eingetragen und der [wiki title=”CVSS”]CVSS[/wiki] bei 7.8 festgelegt. Die Sicherheitsforscher bei Qualys haben die Lücke erfolgreich bei Ubuntu, Debian, Fedora, und CentOS ausgenutzt. Auch auf der ARM-Plattform funktionierte die Rechteausweitung.
Exploit öffentlich, Patch wird ausgeliefert
Red Hat wurde am 18.11.2021 über die Lücke informiert, am 11.1.2022 wurde ein Patch erstellt, der seit gestern auf GitLab verfügbar ist und vereinbart, die Öffentlichkeit koordiniert am 25.1. zu informieren. Während die Sicherheitsplattform Qualys auf die Veröffentlichung eines Proof-of-Concept verzichtete, sagten die Forscher einen baldigen Exploit voraus. Dieser erschien dann auch nur drei Stunden später. Bis ein Patch in der jeweiligen Distribution verfügbar ist, lässt sich auf potenziell gefährdeten Systemen als vorübergehende Maßnahme mit chmod 0755 /usr/bin/pkexec das SUID-Bit entfernen. Ubuntu und Red Hat haben den Patch bereits ausgeliefert, weitere Distributionen sollen heute folgen.

Diese Sicherheitslücke ist zwar schlimm, doch was ich hierbei stets vermisse ist der Weg wie ein Angreifer so etwas für sich ausnutzen kann. Schliesslich funktioniert das nicht aus der Ferne, und lokal vor Ort muss man vollständig authentifiziert sein, um überhaupt in der Position zu sein eine Sicherheitslücke dieser Art ausnutzen zu können. Wie läuft das also ab? Denn bevor das nicht klar und praktikabel ist, ist jede Diskussion über eine angeblich hohe Bedrohung ziemlich gegenstandslos. Nicht zu vergessen das es gerade heutzutage nicht selten Praxis ist, zusätzliche Schutzmaßnahmen anzuwenden um die Angriffsfläche systemweit zu reduzieren. All das sind Faktoren die das Endergebnis stark beeinflussen, wo ich mir wünschen würde das so etwas auch kommuniziert wird. Und wenn man mal mich als Beispiel nimmt, dann ist “su” ist die einzige SUID-Binary im ganzen System, und das aus Sicherheitsgründen. Darüber hinaus wird auch nichts installiert, was mir oftmals unnötige SUID-Binaries aufzwingt. Diese waren schon zu oft ein Sicherheitsrisiko. Von daher halte ich wenig von solchen Nachrichten, weil sich zu oft unterm Strich sagen lässt, dass da mehr Wind aufgewirbelt wurde als die Sache wert war.
Naja, offenbar bist du aber kein gutes Beispiel. “sudo” ist noch mehr verbreitet und hatte seine Lücken. polkit ist nun einmal standardmäßig bei vielen Distributionen installiert. Ich könnte damit als einfacher Student mit SSH-Zugang mal eben meine Kommilitonen und Profs ausspähen, da an der Uni Multi-User Systeme üblich sind.
Du willst etwas aus der Ferne haben? Wenn es ein Javascript-Exploit schafft, den unpriviligierten Browserprozess zu übernehmen, dann wäre diese Lücke möglicherweise der nächste Schritt, um das System zu übernehmen.
Redhat hat die Sicherheitslücke als Important eingestuft. Also nicht Critical. Damit ist das doch nüchtern schon genau beschrieben. Dass so eine schwerwiegende Lücke schon seit dem ersten Release der Software drin ist, ist meines Erachtens schon bemerkenswert. Besonders weil diese Lücke bzgl. “argc” auch auf viele andere Programme ebenfalls zutreffen könnte.
In Arch und damit auch EndeavorOS polkit mit 0.120-4 ebenfalls seit gestern gefixt. Ob auch in Manjaro, ist eine andere Frage… 😉
Nicht früher, immer noch (zeigt ja auch Dein Link). Paket und Konfigurationspfad verwenden die Kurzform, man kann PolicyKit im Sprach-/Schreibgebrauch auch abkürzen wie vieles, bspw. Distupgrade (nicht zu verwechseln mit der kleingeschriebenen apt-get-Option) für Distributionsupgrade.
Bei Mageia wurde heute Nacht ein Bugfix erstellt…
https://manjaro.org/branch-compare/
polkit ist natürlich auch seit gestern mit 0.120-4 in Stable
Hehe super, dann bekomm ich den Patch bei Debian bestimmt in 2 Wochen. Es sei denn sie ekeln bis dahin noch mehr Entwickler raus.
Ist PolKit eigentlich konform zum Debian Code of Conduct. Rechteausweitung eines Einzelnen geht doch gar nicht. Sollten nicht besser alle Dienste auf meinem Laptop in einem komplizierten Verfahren abstimmen, ob das okay geht und erst dann gibt es eine Lösung, die alle Seiten zufriedenstellt.
[Achtung dieser Kommentar kann Spuren von Ironie enthalten]
Erstmal checken ob die Abhängigkeiten auch Updates brauchen, wenn ja muß da erstmal ein Gremium drüber beraten.
Du musst doch Debian nicht nutzen. Nimm doch einfach eine von den rolling release Distris. Dann haste auch nicht mehr die Zeit um dir solche Gedanken zu machen (könnte Spuren von Schabernack enthalten).
Habe heute Morgen nach Updates geschaut, bei Xubuntu wurde das Patch aktualisiert.
Den patch habe ich schon gestern auf allen meinen Debian Maschinen installiert…
https://www.debian.org/security/
Ja wurde gestern angeboten!