Die Entwickler des openSUSE-Projekts haben eine Sicherheitsanfälligkeit (CVE-2025-23013) im PAM-Modul pam-u2f entdeckt, das bei der Authentifizierung über YubiKey-Tokens, Yubico Security Key, YubiHSM und andere FIDO-Geräte, die das U2F-Protokoll (Universal 2nd Factor) unterstützen, verwendet wird. Die Sicherheitsanfälligkeit ermöglicht es einem Benutzer mit nicht privilegiertem lokalem Zugriff auf das System, in bestimmten PAM-Konfigurationen die Authentifizierung ohne Einstecken des Hardware-Tokens durchzuführen. In der Praxis wird das Modul pam-u2f in der Regel für die Zwei-Faktor- oder passwortlose Authentifizierung mit Tokens verwendet (zum Beispiel zur Bestätigung der Berechtigung zur Ausführung von Befehlen über die Hilfsprogramme su und sudo).
Die Sicherheitsanfälligkeit wird durch die fehlerhafte Rückgabe des Wertes PAM_IGNORE durch die Funktion pam_sm_authenticate() verursacht. Dieser Wert wird im Fehlerfall bei den Aufrufen von gethostname(), pam_modutil_drop_priv(), pam_modutil_regain_priv() oder resolve_authfile_path() zurückgegeben, sowie bei Problemen mit der Speicherallokation in strdup() oder calloc(). Das Problem besteht darin, dass die Bibliothek libpam, wenn sie von dem PAM-Modul ein Ergebnis mit dem Code PAM_IGNORE erhält, den endgültigen Code PAM_SUCCESS zurückgibt, der eine erfolgreiche Authentifizierung signalisiert, wenn in der Überprüfungskette ein anderes PAM-Modul ein erfolgreiches Authentifizierungsergebnis zurückgegeben hat.
Bei der Verwendung des pam-u2f-Moduls in Verbindung mit pam_unix für die Zwei-Faktor-Authentifizierung ermöglicht die Sicherheitsanfälligkeit eine erfolgreiche Authentifizierung im Falle einer erfolgreichen Passwortüberprüfung, ohne die Bestätigung des zweiten Faktors. Bei der Durchführung der passwortlosen Authentifizierung über das Hardware-Token kann pam-u2f zusammen mit dem PAM-Modul pam_faillock verwendet werden, das die Anzahl der Authentifizierungsversuche einschränkt und PAM_SUCCESS zurückgibt, wenn das Limit nicht überschritten wurde.
Ein Beispiel für einen Angriff ist das Umgehen der Tokenüberprüfung bei der Ausführung privilegierter Befehle durch einen lokalen Benutzer unter Verwendung der Hilfsprogramme sudo und su. Während der Ausführung dieser Befehle kann der Angreifer Bedingungen schaffen, die dazu führen, dass das Modul pam-u2f den Wert PAM_IGNORE zurückgibt, beispielsweise durch das Ausschöpfen des verfügbaren Speichers. Das Problem wurde in der Version pam-u2f 1.3.1 behoben.
Quelle: opennet.ru
