Уязвимост в pam-u2f, позволяваща заобикаляне на автентикацията на базата на хардуерния токен

Разработчиците на проекта openSUSE откриха уязвимост (CVE-2025-23013) в PAM-модула pam-u2f, използван при автентикацията чрез токени YubiKey, Yubico Security Key, YubiHSM и други FIDO устройства, поддържащи протокола U2F (Universal 2nd Factor). Уязвимостта позволява на потребител с непривилегирован локален достъп до системата да премине автентикацията без да вкарва хардуерния токен в определени конфигурации на PAM. На практика модулът pam-u2f обикновено се свързва за двуфакторна или безпаролна автентикация с помощта на токени (например, за потвърждаване на правата за изпълнение на команди чрез утилитите su и sudo).

Уязвимостта е предизвикана от неправилното връщане на стойността PAM_IGNORE от функцията pam_sm_authenticate(). Тази стойност се връща при грешка при извикванията на 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster