Vulnertabilność w pam_oath, która pozwala zdobyć prawa root w systemie.

W module PAM pam_oath, wchodzącym w skład pakietu oath-toolkit i używanym podczas uwierzytelniania dwuetapowego z wykorzystaniem jednorazowych haseł (OTP), ujawniono lukę (CVE-2024-47191), która pozwala na zdobycie dostępu roota przez nieuprzywilejowanego użytkownika w systemie.

Moduł pam_oath działa z uprawnieniami roota i pierwotnie był zaprojektowany do przechowywania kluczy OATH w pliku /etc/users.oath, do którego dostęp ma tylko użytkownik root. W wersji oath-toolkit 2.6.7 dodano wsparcie dla przechowywania plików z kluczami w katalogach domowych użytkowników (~/.config/users.oath). Nieuprzywilejowani użytkownicy zyskali możliwość modyfikacji plików z własnymi kluczami, ale pam_oath przy dostępie do tych plików nie zrzucał przywilejów i kontynuował używanie niebezpiecznych metod pracy z plikami, zaprojektowanych z myślą o tym, że pliki są umieszczane w katalogu, do którego nie można mieć dostępu.

Luka jest spowodowana tym, że po każdej pomyślnej autoryzacji za pomocą jednorazowego hasła pam_oath przeprowadzał nadpisywanie pliku z kluczami, aby zapobiec wielokrotnemu używaniu tego samego hasła. Operacja nadpisywania polegała na stworzeniu w tym samym katalogu pliku blokującego, zapisaniu nowej zawartości w pliku z rozszerzeniem „.new” i zastąpieniu starego pliku jego nową wersją. Plik z rozszerzeniem „.new” tworzono z tymi samymi uprawnieniami co plik docelowy, ale zapisywanie w nim odbywało się przez proces z uprawnieniami roota, bez sprawdzenia istnienia pliku.

Gdy plik znajdował się w katalogu systemowym, nie występowały problemy, ale po wprowadzeniu wsparcia dla przechowywania plików z kluczami w katalogach domowych pojawiła się łatwo eksploatowana luka. Do ataku wystarczy stworzyć dowiązanie symboliczne „~/.config/oath.secrets.new” i skierować je na dowolny plik systemowy, który zostanie nadpisany po pomyślnej autoryzacji.

Aby uzyskać dostęp roota, można skierować dowiązanie symboliczne do pliku /etc/shadow. W takim przypadku pam_oath zapisze w /etc/shadow aktualną listę kluczy i zsynchronizuje właściciela oraz uprawnienia z plikiem users.oath. Ponieważ plik users.oath należy do użytkownika, plik /etc/shadow będzie miał tego użytkownika jako właściciela, po czym atakujący będzie mógł edytować plik /etc/shadow i zapisać w nim nowe parametry logowania dla konta root.

Vulnerability manifests starting with the release of oath-toolkit 2.6.7 and has been patched (1,2,3) in version 2.6.12. The vulnerability can be tracked in distributions on the following pages: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch. It only affects configurations where file hosting with keys in home directories is allowed, for example, when using the PAM settings with the string "auth [user_unknown=ignore success=ok] pam_oath.so usersfile=${HOME}/user.oath".

Additionally, a recently discovered vulnerability (CVE-2024-9313) in the PAM module from the Authd package, developed by the Ubuntu project, can be mentioned. This vulnerability allows a user managed by the Authd broker to impersonate any other user managed by the same broker and successfully authenticate through su, sudo, or ssh as another user. The issue has been fixed in Authd version 0.3.5.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster