Sicherheitslücke in systemd-coredump, die es ermöglicht, den Inhalt des Speichers von Suid-Programmen zu ermitteln

In der Komponente systemd-coredump wurde eine Schwachstelle (CVE-2022-4415) identifiziert, die nach Prozessabstürzen generierte Kerndateien verarbeitet und es einem unprivilegierten lokalen Benutzer ermöglicht, den Speicherinhalt privilegierter Prozesse zu ermitteln, die mit dem suid-Root-Flag ausgeführt werden. Das Standardkonfigurationsproblem wurde für openSUSE-, Arch-, Debian-, Fedora- und SLES-Distributionen bestätigt.

Die Schwachstelle wird durch die fehlende korrekte Verarbeitung des sysctl-Parameters fs.suid_dumpable in systemd-coredump verursacht, der, wenn er auf den Standardwert 2 gesetzt ist, die Generierung von Core-Dumps für Prozesse mit dem suid-Flag ermöglicht. Es versteht sich, dass die Zugriffsrechte für die Kerndateien der vom Kernel geschriebenen Suid-Prozesse so festgelegt sein müssen, dass nur das Lesen durch den Root-Benutzer möglich ist. Das Dienstprogramm systemd-coredump, das vom Kernel zum Speichern von Kerndateien aufgerufen wird, speichert die Kerndatei unter der Root-ID, bietet aber zusätzlich ACL-basierten Lesezugriff auf die Kerndateien basierend auf der ID des Besitzers, der den Prozess ursprünglich gestartet hat .

Mit dieser Funktion können Sie Kerndateien herunterladen, ohne zu berücksichtigen, dass das Programm die Benutzer-ID ändern und mit erhöhten Rechten ausgeführt werden kann. Der Angriff besteht darin, dass ein Benutzer eine Suid-Anwendung starten und ihr ein SIGSEGV-Signal senden und dann den Inhalt einer Kerndatei laden kann, die bei einem abnormalen Abbruch einen Speicherabschnitt des Prozesses enthält.

Beispielsweise kann ein Benutzer „/usr/bin/su“ ausführen und in einem anderen Terminal seine Ausführung mit dem Befehl „kill -s SIGSEGV `pidof su`“ beenden, woraufhin systemd-coredump die Kerndatei in /var speichert /lib/systemd/-Verzeichnis coredump und legt eine ACL dafür fest, die das Lesen durch den aktuellen Benutzer ermöglicht. Da das suid-Dienstprogramm „su“ den Inhalt von /etc/shadow in den Speicher liest, kann ein Angreifer Zugriff auf Informationen über die Passwort-Hashes aller Benutzer im System erhalten. Das Dienstprogramm sudo ist nicht anfällig für Angriffe, da es die Generierung von Kerndateien über ulimit verbietet.

Nach Angaben der systemd-Entwickler tritt die Sicherheitslücke ab Systemd-Release 247 (November 2020) auf, laut dem Forscher, der das Problem identifiziert hat, ist jedoch auch Release 246 betroffen. Die Sicherheitslücke tritt auf, wenn systemd mit der Bibliothek libacl kompiliert wird (standardmäßig in alle gängigen Distributionen). Der Fix ist derzeit als Patch verfügbar. Sie können die Korrekturen in den Distributionen auf den folgenden Seiten verfolgen: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Um die Sicherheit zu umgehen, können Sie sysctl fs.suid_dumpable auf 0 setzen, wodurch das Senden von Dumps an den systemd-coredump-Handler deaktiviert wird.

Source: opennet.ru

Kommentar hinzufügen