Kritische Lücke in Polkit nach 7 Jahren geschlossen

Photo by iMattSmart on Unsplash

Polkit, das früher PoilcyKit hieß ist der mit Systemd verbandelte Berechtigungsdienst, der es unprivilegierten Prozessen ermöglicht mit ihren privilegierten Kollegen sprechen können. Wenn also eine Anwendung für eine Aufgabe Root-Rechte benötigt, fragt Polkit nach dem entsprechenden Passwort.

CVE-2021-3560

Wie auf GitHub aktuell zu lesen ist, wurde kürzlich eine Sicherheitslücke entdeckt, die seit sieben Jahren in Polkit vorhanden war und als CVE-2021-3560 (Common Vulnerabilities & Exposures) katalogisiert ist. Sie war mit 7.8 von 10 Punkten als kritisch eingestuft.

Ausweitung der Rechte

Bei der Lücke handelte es sich um eine mögliche Privilegien-Eskalation, die sehr einfach durchzuführen war. Sie war mit Commit bfa5036 in Version 0.113 eingeschleppt worden. Wie Kevin Backhouse, der Entdecker der Lücke schreibt, waren zur Ausnutzung lediglich einige Kommandozeilen-Werkzeuge und Befehle wie bash, kill und dbus-send notwendig. Die Schwachstelle wird durch das Starten eines dbus-send-Befehls ausgelöst, der jedoch sofort per kill beendet wird, während Polkit noch mitten in der Verarbeitung der Anfrage steckt.

Polkit ging mit der Antwort auf die bereits beendete Anfrage falsch um. Anstatt den Vorgang abzubrechen, ging Polkit davon aus, dass die Anfrage von einem Prozess mit der UID 0 gekommen sei, also von einem Root-Prozess und genehmigte die Anfrage. Das gelang zwar nicht immer, aber oft genug, um den Aufwand gering zu halten.

Bitte zeitnah aktualisieren

Der Fehler betrifft Distributionen, die Polkit in Version 0.113 oder später verwenden. Welche Distributionen das sind, lässt sich mit Repology nachvollziehen. Debian hat mittlerweile mit Version 0.105-31 einen Patch für Unstable und Testing bereitgestellt, den Ubuntu für 21.04 übernommen hat. Unter anderem auch Arch Linux, Red Hat und SUSE haben ihre Pakete gepatched.

5 3 votes
Article Rating

Verwandte Themen

5 3 votes
Article Rating
Abonnieren
Benachrichtige mich bei
18 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments