V modulu PAM pam_oath, který je součástí balíčku oath-toolkit a používá se při dvoufaktorové autentizaci s využitím jednorázových hesel (OTP), byla zjištěna zranitelnost (CVE-2024-47191), která umožňuje neoprávněnému uživateli získat root přístup do systému.
Modul pam_oath běží s právy root a byl původně navržen pro ukládání OATH klíčů do souboru /etc/users.oath, k němuž má přístup pouze uživatel root. Ve verzi oath-toolkit 2.6.7 byla přidána podpora pro ukládání souborů s klíči do domovských adresářů uživatelů (~/.config/users.oath). Neoprávnění uživatelé získali možnost měnit soubory se svými klíči, ale pam_oath při přístupu k těmto souborům nesnižoval privilegium a stále používal nezabezpečené metody práce se soubory, které počítají s tím, že soubory se nacházejí v adresáři, jehož změnu není možné provádět.
Zranitelnost je způsobena tím, že po každém úspěšném ověření pomocí jednorázového hesla, pam_oath přepisoval soubor s klíči, aby se zabránilo opakovanému použití jednoho hesla. Operace přepsání spočívala ve vytvoření v tomtéž adresáři lock souboru, zápisu nového obsahu do souboru s příponou „.new“ a nahrazení starého souboru novou verzí. Při tom byl soubor s příponou „.new“ vytvářen se stejnými právy jako cílový soubor, ale zápis do něj probíhal procesem s právy root a bez kontroly existence souboru.
Pokud byl soubor umístěn v systémovém adresáři, žádné problémy se nevyskytovaly, ale po zavedení podpory pro umístění souborů s klíči do domácích adresářů se objevila snadno využitelná zranitelnost. K útoku stačí vytvořit symbolický odkaz „~/.config/oath.secrets.new“ a nasměrovat jej na jakýkoli systémový soubor, který bude přepsán po úspěšném ověření.
Pro získání root přístupu lze nasměrovat symbolický odkaz na soubor /etc/shadow. V tomto případě pam_oath zapíše do /etc/shadow aktuální seznam klíčů a synchronizuje vlastníka a přístupová práva se souborem users.oath. Jelikož soubor users.oath patří uživateli, bude jako vlastník /etc/shadow nastaven tento uživatel, po čemž útočník bude moci upravit soubor /etc/shadow a zapsat do něj nové přihlašovací údaje pro účet root.
Zranitelnost se projevuje od verze oath-toolkit 2.6.7 a byla odstraněna (1,2,3) ve verzi 2.6.12. Opravy zranitelnosti lze sledovat v distribucích na těchto stránkách: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch. Zranitelnost se týká pouze konfigurací, kde je povoleno umisťování souborů s klíči v domácích adresářích, například při použití v nastavení PAM řádku „auth [user_unknown=ignore success=ok] pam_oath.so usersfile=${HOME}/user.oath“.
Dále lze zmínit nedávno objevenou zranitelnost (CVE-2024-9313) v PAM modulu součásti balíčku Authd, vyvíjeného projektem Ubuntu. Zranitelnost umožňuje uživateli spravovanému prostřednictvím brokert Authd vydávat se za jakéhokoliv jiného uživatele spravovaného tímto brokerem a úspěšně projít autentizací přes su, sudo nebo ssh jako jiný uživatel. Problém byl odstraněn ve verzi Authd 0.3.5.
Zdroj: opennet.ru
