Разработчиците на проект openSUSE откриха уязвимост (CVE-2025-23013) в PAM модула pam-u2f, използван при удостоверяване чрез токени YubiKey, Yubico Security Key, YubiHSM и други FIDO устройства, поддържащи протокола U2F (Universal 2nd Factor). Уязвимостта позволява на потребителя с непривилегирован локален достъп до системата, в определени конфигурации на PAM, да мине удостоверяването без физически токен. На практика модулът pam-u2f обикновено се използва за двуфакторно или безпаролно удостоверяване с токени (например, за потвърждаване на правомощията за изпълнение на команди чрез утилитите su и sudo).
Уязвимостта е причинена от неправилното връщане на функцията pam_sm_authenticate() стойността PAM_IGNORE. Тази стойност се връща в случай на грешка при извикванията на gethostname(), pam_modutil_drop_priv(), pam_modutil_regain_priv() или resolve_authfile_path(), а също така при проблеми с разпределението на паметта в strdup() или calloc(). Проблемът е, че библиотеката libpam, получаваща от PAM модула резултат с код PAM_IGNORE, ще върне окончателния код PAM_SUCCESS, който обозначава успешно преминаване на удостоверяването, ако в проверъчната верига някой друг PAM модул е върнал успешен резултат от удостоверяването.
При използване на модула pam-u2f в комбинация с pam_unix за двуфакторно удостоверяване, уязвимостта позволява успешно преминаване на удостоверяването при успешна проверка на паролата, без потвърждение на втория фактор. При извършване на безпаролно удостоверяване чрез физически токен pam-u2f може да бъде използван в комбинация с PAM модула pam_faillock, който ограничава броя на опитите за удостоверяване и връща PAM_SUCCESS, ако лимитът не е изчерпан.
Като пример за атака се посочва заобикаляне на проверката на токена при изпълнение на привилегировани команди от локален потребител, използвайки утилитите sudo и su. При стартиране на тези команди атакуващият може да създаде условия за връщане на стойността PAM_IGNORE от модула pam-u2f, например, чрез изчерпване на наличната памет. Проблемът е отстранен в версия pam-u2f 1.3.1.
Източник: opennet.ru
