Im Systemd-Coredump-Komponenten, die die Verarbeitung von Core-Dateien unterstützen, die nach unerwarteten Prozessabbrechungen erzeugt werden, wurde eine Sicherheitsanfälligkeit (CVE-2022-4415) festgestellt, die es einem nicht privilegierten lokalen Benutzer ermöglicht, den Speicherinhalt privilegierter Prozesse, die mit dem SUID-Root-Flag ausgeführt werden, zu bestimmen. Das Vorliegen des Problems in der Standardkonfiguration wurde in den Distributionen openSUSE, Arch, Debian, Fedora und SLES bestätigt.
Die Sicherheitsanfälligkeit entsteht durch die fehlende ordnungsgemäße Verarbeitung des Sysctl-Parameters fs.suid_dumpable im systemd-coredump, der bei dem standardmäßigen Wert 2 die Erzeugung von Core-Dumps für Prozesse mit dem SUID-Flag zulässt. Es wird vorausgesetzt, dass Core-Dateien von SUID-Prozessen, die vom Kernel geschrieben werden, Zugriffsbeschränkungen aufweisen, die nur das Lesen für den Benutzer root erlauben. Das Programm systemd-coredump, das vom Kernel zur Speicherung von Core-Dateien aufgerufen wird, speichert die Core-Datei unter der ID root, gewährt jedoch zusätzlich Zugriff auf Core-Dateien basierend auf ACL, die das Lesen je nach UID des ursprünglich gestarteten Prozesses ermöglichen.
Diese Besonderheit ermöglicht das Laden von Core-Dateien, ohne dass die Anwendung den Benutzerwechsel und die Durchführung mit erhöhten Rechten berücksichtigt. Der Angriff besteht darin, dass der Benutzer eine SUID-Anwendung starten und ihr das Signal SIGSEGV senden kann, wonach er den Inhalt der Core-Datei laden kann, die einen Ausschnitt des Speichers des Prozesses während des unerwarteten Abbruchs enthält.
Beispielsweise kann ein Benutzer „/usr/bin/su“ starten und in einem anderen Terminal dessen Ausführung mit dem Befehl „kill -s SIGSEGV `pidof su`“ beenden, wonach systemd-coredump die Core-Datei im Verzeichnis /var/lib/systemd/coredump speichert und ihr ACL zuweist, die dem aktuellen Benutzer das Lesen erlaubt. Da das SUID-Programm 'su' auf den Inhalt von /etc/shadow zugreift, kann der Angreifer Informationen über die Passwort-Hashes aller Benutzer im System erhalten. Das Programm sudo ist gegen diesen Angriff immun, da es die Erzeugung von Core-Dateien durch ulimit verhindert.
Laut den Entwicklern von systemd tritt die Schwachstelle ab der Version systemd 247 (November 2020) auf, allerdings ist laut dem Forscher, der das Problem entdeckt hat, auch die Version 246 betroffen. Die Schwachstelle tritt auf, wenn systemd mit der Bibliothek libacl (standardmäßig in allen gängigen Distributionen) kompiliert wird. Ein Fix ist derzeit als Patch verfügbar. Die Aktualisierung in den Distributionen kann auf den folgenden Seiten verfolgt werden: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Als vorübergehende Schutzmaßnahme kann sysctl fs.suid_dumpable auf 0 gesetzt werden, um das Übertragen von Dumps an den Handler systemd-coredump zu deaktivieren.
Quelle: opennet.ru
