Az openSUSE projekt fejlesztői egy sérülékenységet (CVE-2025-23013) fedeztek fel a pam-u2f PAM modulban, amelyet YubiKey, Yubico Security Key, YubiHSM és más U2F (Universal 2nd Factor) protokollt támogató FIDO-eszközökkel történő hitelesítéskor használnak. A sérülékenység lehetővé teszi, hogy egy nem privilegizált helyi hozzáféréssel rendelkező felhasználó bizonyos PAM konfigurációk mellett úgy végezzen hitelesítést, hogy nem helyez be hardvertokent. A gyakorlatban a pam-u2f modul általában a kétfaktoros vagy jelszó nélküli hitelesítéshez kapcsolódik tokének használatával (például parancsok végrehajtási jogosultságainak megerősítésére az su és sudo segédprogramok által).
A sérülékenység oka, hogy a pam_sm_authenticate() függvény helytelenül adja vissza a PAM_IGNORE értéket. Ezt az értéket akkor adja vissza, ha a gethostname(), pam_modutil_drop_priv(), pam_modutil_regain_priv() vagy resolve_authfile_path() hívások végrehajtása hibás, valamint ha memóriaallokációs problémák lépnek fel a strdup() vagy calloc() során. A problémát az okozza, hogy a libpam könyvtár, ha egy PAM modul PAM_IGNORE kódú eredményt ad vissza, a végső PAM_SUCCESS kódot visszaadja, amely a sikeres hitelesítést jelzi, ha a ellenőrzési láncban egy másik PAM modul sikeresen végezte el a hitelesítést.
A pam-u2f modul pam_unix-szal való együtt használata esetén a sérülékenység lehetővé teszi a hitelesítés sikeres végrehajtását, ha a jelszó ellenőrzése sikeres, anélkül, hogy a második faktort megerősítené. Jelszó nélküli hardvertokenes hitelesítés végrehajtásakor a pam-u2f párosítható a pam_faillock PAM modullal, amely korlátozza a hitelesítési kísérletek számát, és PAM_SUCCESS-t ad vissza, ha a korlát nem merült ki.
A támadás egyik példája a token ellenőrzése megkerülése, amikor egy helyi felhasználó privilegizált parancsokat hajt végre, a sudo és su segédprogramok felhasználásával. E parancsok végrehajtása közben a támadó létrehozhat olyan körülményeket, amelyek lehetővé teszik a pam-u2f modulnak a PAM_IGNORE érték visszaadását, például a rendelkezésre álló memória kimerítésével. A probléma a pam-u2f 1.3.1 verziójában megoldódott.
Forrás: opennet.ru
