Уязвимост в pam_oath, позволяваща получаване на root права в системата

В PAM модула pam_oath, част от пакета oath-toolkit, използван при двуфакторна автентикация с еднократни пароли (OTP), е открита уязвимост (CVE-2024-47191), която позволява на непривилегирован потребител да получи root достъп в системата.

Модулът pam_oath работи с root права и първоначално е предназначен за съхраняване на OATH ключове в файла /etc/users.oath, до който има достъп само потребителят root. В версията oath-toolkit 2.6.7 е добавена поддръжка за съхраняване на файлове с ключове в домашните директории на потребителите (~/.config/users.oath). Непривилегированите потребители получиха възможност да изменят файловете с техните ключове, но pam_oath не нулира привилегиите си при достъп до тези файлове и продължава да използва небезопасни методи за работа с файлове, които предполагат, че файловете са разположени в директория, недостъпна за промяна.

Уязвимостта е причинена от това, че след всяка успешна автентикация с еднократна парола, pam_oath записва файла с ключове, за да предотврати повторната употреба на една и съща парола. Процесът на запис се състои в създаване на lock-файл в същата директория, записване на новото съдържание във файл с разширение «.new» и замяна на стария файл с новия. При това, файлът с разширение «.new» се създава с правата на целевия файл, но записът в него се извършва от процес с root права и без проверка за съществуването на файла.

Ако файлът се намира в системната директория, проблеми не възникват, но след добавянето на поддръжка за съхраняване на файлове с ключове в домашни директории, се появи лесна за експлоатация уязвимост. За атаката е достатъчно да се създаде символична връзка «~/.config/oath.secrets.new» и да се насочи към произволен системен файл, който ще бъде презаписан след успешна автентикация.

За получаване на root достъп можете да насочите символично връзка към файла /etc/shadow. В този случай pam_oath ще запише актуалния списък с ключове в /etc/shadow и ще синхронизира собственика и правата на достъп с файла users.oath. Тъй като файлът users.oath принадлежи на потребителя, собственикът на /etc/shadow ще бъде определен като този потребител, след което атакуващият ще може да редактира файла /etc/shadow и да запише нови параметри за вход за акаунта root.

Уязвимостта се проявява от версия oath-toolkit 2.6.7 и е отстранена (1,2,3) в версия 2.6.12. Можете да проследите отстраняването на уязвимостта в дистрибуциите на следните страници: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch. Уязвимостта засяга само конфигурации, при които е разрешено допустимо разполагане на файлове с ключове в домашните директории, например, при използване в настройките на PAM на реда „auth [user_unknown=ignore success=ok] pam_oath.so usersfile=${HOME}/user.oath“.

Допълнително може да се спомене откритата наскоро уязвимост (CVE-2024-9313) в PAM модула в пакета Authd, разработван от проекта Ubuntu. Уязвимостта позволява на потребител, управляван чрез брокера Authd, да се представи за всеки друг потребител, управляван от същия брокер, и успешно да премине аутентификация чрез su, sudo или ssh под друг потребител. Проблемът е отстранен в версия Authd 0.3.5.

Източник: opennet.ru

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