Skip to main content

Analyse des lokalen Privilege-Escalation-Exploits PwnKit

Artikel von

Kyle Suero

blog feature security alert purple

29. Januar 2022

0 Min. Lesezeit

Was haben Linux-Sicherheitslücken und Naturkatastrophen gemeinsam? Etwas scheinbar Schlummerndes kann plötzlich zum Leben erwachen und Aktivitäten unter der Oberfläche offenlegen. Vor einigen Tagen veröffentlichte ein Sicherheitsforscher eine schwerwiegende Sicherheitslücke namens PwnKit, die die meisten großen Linux-Distributionen betrifft. Das Beunruhigende daran? Sie besteht bereits seit Mai 2009.

Polkit ist eine Komponente zur Verwaltung von Berechtigungen in Unix-ähnlichen Betriebssystemen und standardmäßig in den meisten großen Linux-Distributionen enthalten. Der mit Polkit bereitgestellte Befehl pkexec dient dazu, Befehle mit erhöhten Berechtigungen auszuführen, und wird als das sudo von systemd bezeichnet.

Die Sicherheitslücke in Polkit ist in diesem Fall keine schlummernde Bedrohung mehr. Diese weit verbreitete Komponente in Linux-basierten Betriebssystemen weist seit ihrer Entstehung im Jahr 2009 diese anhaltende Sicherheitslücke auf. Der Mechanismus zur Richtlinienkontrolle wurde zuerst im Betriebssystem Fedora eingesetzt und hat sich seitdem in verschiedenen Betriebssystemen verbreitet.

Die Sicherheitslücke ermöglicht es einem Angreifer, der als lokaler Benutzer ohne Berechtigungen agiert, durch einen Pufferüberlauf Speicher zu beschädigen. Wie das Qualys-Team gezeigt hat, lässt sich dieser Überlauf anschließend ausnutzen, um vollständige Root-Berechtigungen zu erlangen. 2013 meldete Ryan Mallon diese Sicherheitslücke und reichte einen Patch bei den Verantwortlichen ein. Mallon konnte keinen Weg finden, die Sicherheitslücke auszunutzen, und der Patch wurde nie angewendet.

Die Ursache dieses Fehlers liegt in der Verarbeitung von Kommandozeilenargumenten. In C-Programmen unter Linux ist das erste Argument (argv[0]) in der Regel der Name der ausführbaren Datei selbst. Es ist jedoch möglich, durch Aufruf der Funktion execve eine leere Liste ohne den Namen der ausführbaren Datei anzugeben. Wenn der Code in solchen Fällen davon ausgeht, dass argv[0] immer vorhanden ist, kann dies zu Sicherheitslücken durch Speicherbeschädigung führen. Dieses grundlegende Problem bei der Argumentverarbeitung tritt auch in anderen Binärdateien auf. pkexec ist jedoch ein Sonderfall, da es SUID ist und über besondere Dateiberechtigungen verfügt, die es im Namen des ursprünglichen Dateieigentümers statt des Benutzers ausführen lassen, der den Befehl gestartet hat.  

Wir gehen hier nicht auf alle Details ein – diese sind in der ursprünglichen Offenlegung ausführlich dokumentiert. Wenn der Befehl pkexec ohne Argumente aufgerufen wird, ist die Argumentliste leer. Dadurch wird der Speicher beschädigt, sodass Angreifer vollständige Root-Berechtigungen auf dem Zielhost erlangen können.

Aktualisieren Sie Ihr System, um sich vor PwnKit zu schützen

Exploits für PwnKit sind äußerst einfach und bereits in freier Wildbahn aufgetaucht. Glücklicherweise wurden sehr schnell Patches bereitgestellt. Installieren Sie daher unbedingt sofort alle Betriebssystem-Updates!

Wenn Sie keine Betriebssystem-Updates installieren können, besteht eine geeignete Übergangslösung darin, das SUID-Bit von pkexec manuell mit dem Befehl chmod zu entfernen:

chmod 0755 /usr/bin/pkexec

Dieser Exploit erinnert daran, dass schwerwiegende Sicherheitslücken sehr lange unentdeckt bleiben können – selbst in weit verbreiteten Open-Source-Anwendungen, deren Quellcode über einen langen Zeitraum von vielen Menschen geprüft wurde.

Regelmäßige Sicherheitsupdates sind entscheidend, um Sicherheitsbedrohungen einzudämmen. Wenn Sie Container zum Bereitstellen von Software verwenden, sollten Sie aktualisierte Images einführen, die diese Betriebssystem-Patches enthalten. Mit Snyk Container können Sie Sicherheitslücken wie PwnKit in Ihren Containern ganz einfach finden und beheben. Snyk verweist Sie auf aktualisierte Basis-Images, die das Problem beheben, oder auf eine Korrektur bzw. einen Patch, den Sie selbst hinzufügen können.

Container-Sicherheit mit Fokus auf Entwickler

Snyk findet und behebt automatisch Schwachstellen in Container-Images und Kubernetes-Workloads.

Betroffene Betriebssysteme

RedHat

  • Red Hat Enterprise Linux 6

  • Red Hat Enterprise Linux 7

  • Red Hat Enterprise Linux 8

  • Red Hat Virtualization 4

Ubuntu:

  • Ubuntu 21.10

  • Ubuntu 20.04

  • Ubuntu 18.04

  • Ubuntu 16.04

  • Ubuntu 14.04

SUSE:

  • HPE Helion Openstack 8

  • SUSE CaaS Platform 4.0

  • SUSE Enterprise Storage 6

  • SUSE Enterprise Storage 7

  • SUSE Linux Enterprise High Performance Computing 15

  • SUSE Linux Enterprise Micro 5

  • SUSE Linux Enterprise Module for Basesystem 15

  • SUSE Linux Enterprise Server 12

  • SUSE Linux Enterprise Server 15

  • SUSE Linux Enterprise Server for SAP Applications 12

  • SUSE Linux Enterprise Server for SAP Applications 15

  • SUSE Linux Enterprise Software Development Kit 12

  • SUSE Manager Proxy 4

  • SUSE OpenStack Cloud 8

  • SUSE OpenStack Cloud 9

  • SUSE OpenStack Cloud Crowbar 8

  • SUSE OpenStack Cloud Crowbar 9

  • openSUSE Leap 15

Hinweis: SUSE Linux Enterprise 11 ist nicht betroffen, da es die ältere PolicyKit-1-Generation verwendet.

Sicherheitshinweise

Weiterlesen

Blog

Frontier-Modelle fanden die Schwachstellen. Nur der Angreifer fand die Angriffsketten.

Die statische Analyse fand die Schwachstellen, doch erst Live-Angriffstests bewiesen, wie sie sich zu Angriffen verketten lassen. Ein Vergleich von Evo COS, Claude Security und Claude Code Security.

feature insights context
Blog

Autonome Angriffe sind bereits Realität. Die Verteidigung muss Schritt halten.

Autonome Angreifer verkürzen das Zeitfenster für die Verteidigung. Erfahren Sie, wie kontinuierliches Erkennen, Beheben, Validieren und Verhindern Sicherheitsteams helfen kann, Schritt zu halten.

Blog

Evo ADS Govern Agent Behavior ist allgemein verfügbar: MCP-Nutzung unter Kontrolle bringen

Evo ADS Govern Agent Behavior ist jetzt allgemein verfügbar und startet mit MCP Governance. Entdecken, genehmigen, überwachen, protokollieren und blockieren Sie die MCP-Server-Nutzung in führenden KI-Coding-Agenten.