Die Entwickler des Projekts openSUSE haben eine Sicherheitsschwachstelle (CVE-2025-23013) im PAM-Modul pam-u2f entdeckt, das bei der Authentifizierung mit YubiKey-Tokens, Yubico Security Key, YubiHSM und anderen FIDO-Geräten, die das U2F-Protokoll (Universal 2nd Factor) unterstützen, verwendet wird. Diese Schwachstelle ermöglicht es einem Benutzer mit nicht privilegierten lokalen Zugriffsrechten auf das System, in bestimmten PAM-Konfigurationen die Authentifizierung ohne Eingabe des Hardware-Tokens durchzuführen. In der Praxis wird das Modul pam-u2f normalerweise für die Zwei-Faktor- oder passwortlose Authentifizierung mit Tokens verwendet (zum Beispiel zur Bestätigung von Berechtigungen für die Ausführung von Befehlen über die Tools su und sudo).
Die Sicherheitsanfälligkeit entsteht durch die fehlerhafte Rückgabe des Wertes PAM_IGNORE durch die Funktion pam_sm_authenticate(). Dieser Wert wird im Fall eines Fehlers bei den Aufrufen von gethostname(), pam_modutil_drop_priv(), pam_modutil_regain_priv() oder resolve_authfile_path() zurückgegeben, sowie bei Problemen mit der Speicherzuteilung in strdup() oder calloc(). Das Problem liegt darin, dass die Bibliothek libpam, nachdem sie von einem PAM-Modul das Ergebnis mit dem Code PAM_IGNORE erhalten hat, den endgültigen Code PAM_SUCCESS zurückgibt, der eine erfolgreiche Authentifizierung anzeigt, sofern ein anderes PAM-Modul in der Prüfkette ein erfolgreiches Authentifizierungsergebnis zurückgegeben hat.
Bei der Nutzung des Moduls pam-u2f zusammen mit pam_unix für die Zwei-Faktor-Authentifizierung ermöglicht die Sicherheitsanfälligkeit eine erfolgreiche Authentifizierung bei erfolgreicher Passwortprüfung, ohne dass der zweite Faktor bestätigt wird. Bei der passwortlosen Authentifizierung über ein Hardware-Token kann pam-u2f zusammen mit dem PAM-Modul pam_faillock verwendet werden, welches die Anzahl der Authentifizierungsversuche beschränkt und PAM_SUCCESS zurückgibt, solange das Limit nicht erreicht ist.
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 Tools sudo und su. Während der Ausführung dieser Befehle kann der Angreifer Bedingungen schaffen, die dem Modul pam-u2f den Wert PAM_IGNORE zurückgeben, zum Beispiel durch einen Speicherüberlauf. Das Problem wurde in Version pam-u2f 1.3.1 behoben.
Quelle: opennet.ru
