Im systemd-Systemmanager
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
Source: opennet.ru