Dezvoltatorii proiectului openSUSE au identificat o vulnerabilitate (CVE-2025-23013) în modulul pam-u2f PAM, folosit pentru autentificare prin YubiKey, Yubico Security Key, YubiHSM și alte dispozitive FIDO care acceptă jetonul U2F (Universal 2nd Factor) . Vulnerabilitatea permite unui utilizator cu acces local neprivilegiat la sistem să se autentifice în anumite configurații PAM fără a introduce un token hardware. În practică, modulul pam-u2f este de obicei conectat pentru autentificare cu doi factori sau fără parolă folosind token-uri (de exemplu, pentru a confirma autoritatea de a executa comenzi prin utilitarele su și sudo).
Vulnerabilitatea este cauzată de funcția pam_sm_authenticate() care returnează incorect valoarea PAM_IGNORE. Această valoare este returnată dacă apelurile la gethostname(), pam_modutil_drop_priv(), pam_modutil_regain_priv(), sau resolve_authfile_path() eșuează sau dacă strdup() sau calloc() au probleme de alocare a memoriei. Problema este că biblioteca libpam, după ce a primit un rezultat de la un modul PAM cu codul PAM_IGNORE, va returna codul final PAM_SUCCESS, indicând autentificarea reușită, dacă alt modul PAM din lanțul de verificări a returnat un rezultat de autentificare cu succes.
Când se utilizează modulul pam-u2f împreună cu pam_unix pentru autentificarea cu doi factori, vulnerabilitatea permite autentificarea cu succes dacă parola este verificată cu succes, fără a confirma cel de-al doilea factor. Când se efectuează autentificare fără parolă folosind un token hardware, pam-u2f poate fi utilizat împreună cu modulul PAM pam_faillock, care limitează numărul de încercări de autentificare și returnează PAM_SUCCESS dacă limita nu este epuizată.
Un exemplu de atac este ocolirea verificării token-ului atunci când un utilizator local execută comenzi privilegiate folosind utilitarele sudo și su. Când rulează aceste comenzi, un atacator poate crea condiții pentru ca modulul pam-u2f să returneze valoarea PAM_IGNORE, de exemplu, prin epuizarea memoriei disponibile. Problema este rezolvată în versiunea 2 de pam-u1.3.1f.
Sursa: opennet.ru
