Sicherheitslücke in systemd, die es Ihnen möglicherweise ermöglichen könnte, Ihre Berechtigungen zu erweitern

Im systemd-Systemmanager identifiziert Verletzlichkeit (CVE-2020-1712), wodurch Sie möglicherweise Ihren Code mit erhöhten Rechten ausführen können, indem Sie eine speziell entwickelte Anfrage über den DBus-Bus senden. Das Problem wurde in der Testversion behoben systemd 245-rc1 (Patches, die das Problem lösen: 1, 2, 3). Die Schwachstelle wurde in Distributionen behoben Ubuntu, Fedora, RHEL (erscheint in RHEL 8, hat aber keinen Einfluss auf RHEL 7), CentOS и SUSE/openSUSE, aber zum Zeitpunkt des Schreibens waren die Nachrichten noch nicht korrigiert Debian и Arch Linux.

Die Schwachstelle wird durch den Zugriff auf einen bereits freigegebenen Speicherbereich (Use-after-free) verursacht, der bei der asynchronen Ausführung von Anfragen an Polkit während der Verarbeitung von DBus-Nachrichten auftritt. Einige DBus-Schnittstellen verwenden einen Cache, um Objekte für kurze Zeit zu speichern und die Cache-Einträge zu leeren, sobald der DBus-Bus für die Verarbeitung anderer Anforderungen frei ist. Wenn ein DBus-Methodenhandler bus_verify_polkit_async() verwendet, muss er möglicherweise warten, bis die Polkit-Aktion abgeschlossen ist. Nachdem Polkit bereit ist, wird der Handler erneut aufgerufen und greift auf die bereits im Speicher verteilten Daten zu. Wenn eine Anfrage an Polkit zu lange dauert, werden die Elemente im Cache gelöscht, bevor der DBus-Methodenhandler ein zweites Mal aufgerufen wird.

Zu den Diensten, die die Ausnutzung der Schwachstelle ermöglichen, gehört systemd-machined, das die DBus-API org.freedesktop.machine1.Image.Clone bereitstellt, was zur temporären Speicherung von Daten im Cache und zum asynchronen Zugriff auf Polkit führt. Schnittstelle
org.freedesktop.machine1.Image.Clone ist für alle unprivilegierten Benutzer des Systems verfügbar, was systemd-Dienste zum Absturz bringen oder möglicherweise dazu führen kann, dass Code als Root ausgeführt wird (der Exploit-Prototyp wurde noch nicht demonstriert). Der Code, der die Ausnutzung der Sicherheitslücke ermöglichte, war hinzugefügt in systemd-machined in der Version 2015 System 220 (RHEL 7.x verwendet systemd 219).

Source: opennet.ru

Kommentar hinzufügen