Уязвимость в 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