Im PAM-Modul pam_oath, das Teil des Pakets oath-toolkit ist und bei der Zwei-Faktor-Authentifizierung mit Einmalpasswörtern (OTP) verwendet wird, wurde eine Sicherheitsanfälligkeit (CVE-2024-47191) entdeckt, die es einem unprivilegierten Benutzer ermöglicht, Root-Zugriff im System zu erlangen.
Das Modul pam_oath wird mit Root-Rechten ausgeführt und war ursprünglich für die Ablage von OATH-Schlüsseln in der Datei /etc/users.oath gedacht, auf die nur der Benutzer root Zugriff hat. In der Version oath-toolkit 2.6.7 wurde die Unterstützung für die Ablage von Schlüsseldaten in den Benutzer-Heimverzeichnissen (~/.config/users.oath) hinzugefügt. Unprivilegierte Benutzer erhielten die Möglichkeit, ihre Schlüsseldaten-Dateien zu ändern, aber pam_oath setzte beim Zugriff auf diese Dateien die Berechtigungen nicht zurück und verwendete weiterhin unsichere Methoden zum Arbeiten mit Dateien, die darauf ausgelegt waren, dass die Dateien in einem nicht veränderbaren Verzeichnis abgelegt werden.
Die Sicherheitsanfälligkeit entsteht dadurch, dass pam_oath nach jeder erfolgreichen Authentifizierung mit einem Einmalpasswort die Schlüsseldatei überschreibt, um zu verhindern, dass ein Passwort mehrfach verwendet wird. Der Überschreibvorgang bestand darin, in demselben Verzeichnis eine Lock-Datei zu erstellen, den neuen Inhalt in eine Datei mit der Endung „.new“ zu schreiben und die alte Datei durch die neue zu ersetzen. Dabei wurde die Datei mit der Endung „.new“ mit denselben Rechten wie die Zieldatei erstellt, der Schreibvorgang erfolgte jedoch durch einen Prozess mit Root-Rechten, ohne dass vorher überprüft wurde, ob die Datei bereits existiert.
Wenn die Datei im Systemverzeichnis abgelegt wurde, traten keine Probleme auf. Mit der Einführung der Unterstützung für die Ablage von Schlüsseldaten in Benutzer-Heimverzeichnissen entstand jedoch eine leicht ausnutzbare Sicherheitsanfälligkeit. Für den Angriff genügt es, einen symbolischen Link „~/.config/oath.secrets.new“ zu erstellen und ihn auf eine beliebige Systemdatei zu verweisen, die nach einer erfolgreichen Authentifizierung überschrieben wird.
Um Root-Zugriff zu erhalten, kann der symbolische Link auf die Datei /etc/shadow verweisen. In diesem Fall wird pam_oath die aktuelle Liste der Schlüssel in /etc/shadow schreiben und den Besitzer sowie die Zugriffsrechte mit der Datei users.oath synchronisieren. Da die Datei users.oath dem Benutzer gehört, wird dieser Benutzer als Eigentümer von /etc/shadow festgelegt, was es dem Angreifer ermöglicht, die Datei /etc/shadow zu bearbeiten und neue Anmeldeparameter für das Root-Konto einzutragen.
Die Sicherheitsanfälligkeit tritt ab der Version 2.6.7 von oath-toolkit auf und wurde in Version 2.6.12 (1,2,3) behoben. Die Behebung der Sicherheitsanfälligkeit in den Distributionen kann auf den folgenden Seiten nachverfolgt werden: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch. Die Sicherheitsanfälligkeit betrifft nur Konfigurationen, in denen das Ablegen von Schlüsselfilmen in den Home-Verzeichnissen erlaubt ist, beispielsweise bei der Verwendung in PAM-Einstellungen mit der Zeile „auth [user_unknown=ignore success=ok] pam_oath.so usersfile=${HOME}/user.oath“.
Außerdem kann die kürzlich entdeckte Sicherheitsanfälligkeit (CVE-2024-9313) im PAM-Modul des Authd-Pakets, das vom Ubuntu-Projekt entwickelt wird, erwähnt werden. Diese Sicherheitsanfälligkeit ermöglicht es einem durch den Authd-Broker verwalteten Benutzer, sich als einen anderen Benutzer, der ebenfalls von diesem Broker verwaltet wird, auszugeben und erfolgreich die Authentifizierung über su, sudo oder ssh unter einem anderen Benutzer durchzuführen. Das Problem wurde in der Authd-Version 0.3.5 behoben.
Quelle: opennet.ru
