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 Schwachstelle (CVE-2024-47191) entdeckt, die es einem nicht privilegierten Benutzer ermöglicht, Root-Zugriff auf das System zu erhalten.
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 konzipiert, 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üsseldateien in den Home-Verzeichnissen der Benutzer (~/.config/users.oath) hinzugefügt. Nicht privilegierte Benutzer erhielten die Möglichkeit, Dateien mit ihren Schlüsseln zu ändern, doch pam_oath setzte bei der Verwendung dieser Dateien die Privilegien nicht herab und verwendete weiterhin unsichere Methoden im Umgang mit Dateien, die darauf ausgelegt waren, dass diese in einem nicht bearbeitbaren Verzeichnis abgelegt sind.
Die Schwachstelle entsteht dadurch, dass nach jeder erfolgreichen Authentifizierung mit einem einmaligen Passwort, pam_oath die Datei mit den Schlüsseln überschreibt, um die mehrfach Nutzung eines Passworts zu verhindern. Der Überschreibvorgang bestand darin, eine Lock-Datei im selben Verzeichnis zu erstellen, den neuen Inhalt in eine Datei mit der Endung „.new“ zu schreiben und die alte Datei durch die neue Version zu ersetzen. Dabei wurde die Datei mit der Endung „.new“ mit denselben Rechten wie die Ziel-Datei erstellt, doch der Schreibvorgang erfolgte durch einen Prozess mit Root-Rechten und ohne Überprüfung der Existenz der Datei.
Wenn sich die Datei im Systemverzeichnis befand, traten keine Probleme auf, jedoch entstand nach der Einführung der Unterstützung für die Platzierung von Schlüssel-Dateien in den Home-Verzeichnissen eine leicht ausnutzbare Schwachstelle. Für den Angriff reicht es aus, einen symbolischen Link „~/.config/oath.secrets.new“ zu erstellen und auf eine beliebige Systemdatei zu verweisen, die nach erfolgreicher Authentifizierung überschrieben wird.
Um Root-Zugriff zu erhalten, kann ein symbolischer Link zur Datei /etc/shadow erstellt werden. 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 Besitzer von /etc/shadow festgelegt, wodurch ein Angreifer die Datei /etc/shadow bearbeiten und neue Anmeldedaten für das Root-Konto eintragen kann.
Die Schwachstelle tritt ab der Version oath-toolkit 2.6.7 auf und wurde in der Version 2.6.12 behoben. Die Beseitigung der Schwachstelle kann in den folgenden Distributionen verfolgt werden: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch. Die Schwachstelle betrifft ausschließlich Konfigurationen, in denen die Ablage von Schlüsseldateien in den Heimatverzeichnissen erlaubt ist, beispielsweise bei Verwendung der PAM-Einstellung "auth [user_unknown=ignore success=ok] pam_oath.so usersfile=${HOME}/user.oath".
Zusätzlich kann eine kürzlich entdeckte Schwachstelle (CVE-2024-9313) im PAM-Modul des Authd-Pakets, das von Ubuntu entwickelt wird, erwähnt werden. Diese Schwachstelle ermöglicht es einem über den Authd-Broker verwalteten Benutzer, sich als jeder andere Benutzer, der ebenfalls von diesem Broker verwaltet wird, auszugeben und die Authentifizierung über su, sudo oder ssh erfolgreich als ein anderer Benutzer zu durchlaufen. Das Problem wurde in der Version Authd 0.3.5 behoben.
Quelle: opennet.ru
