În modulul PAM pam_oath, parte din pachetul oath-toolkit folosit pentru autentificarea cu două factori utilizând parole unice (OTP), a fost identificată o vulnerabilitate (CVE-2024-47191) care permite unui utilizator fără privilegii să obțină acces root în sistem.
Modulul pam_oath rulează cu privilegii root și a fost inițial destinat stocării cheilor OATH în fișierul /etc/users.oath, la care are acces doar utilizatorul root. În versiunea oath-toolkit 2.6.7 a fost adăugată suportul pentru stocarea fișierelor cu chei în directoarele personale ale utilizatorilor (~/.config/users.oath). Utilizatorii fără privilegii au obținut posibilitatea de a modifica fișierele cu cheile lor, dar pam_oath nu își reducea privilegiile atunci când accesa aceste fișiere și continua să utilizeze metode nesigure de lucru cu fișierele, presupunând că acestea sunt localizate într-un director inaccesibil pentru modificare.
Vulnerabilitatea este cauzată de faptul că, după fiecare autentificare reușită printr-o parolă unică, pam_oath efectua rescrierea fișierului cu chei pentru a preveni utilizarea aceleași parole de mai multe ori. Operațiunea de rescriere consta în crearea unui fișier de tip lock în același director, înregistrarea noului conținut într-un fișier cu extensia «.new» și înlocuirea vechiului fișier cu varianta nouă. În acest caz, fișierul cu extensia «.new» era creat cu aceleași privilegii ca fișierul țintă, dar scrierea în el era efectuată de un proces cu privilegii root și fără verificarea existenței fișierului.
Dacă fișierul era plasat în directorul sistemului, nu existau probleme, dar după introducerea suportului pentru stocarea fișierelor cu chei în directoarele personale, a apărut o vulnerabilitate ușor exploatabilă. Pentru atac, este suficient să creezi un link simbolic «~/.config/oath.secrets.new» și să-l direcționezi către orice fișier de sistem, care va fi rescris după autentificarea reușită.
Pentru a obține acces root, se poate direcționa un link simbolic către fișierul /etc/shadow. În acest caz, pam_oath va scrie în /etc/shadow lista actualizată a cheilor și va sincroniza proprietarul și permisiunile cu fișierul users.oath. Deoarece fișierul users.oath aparține utilizatorului, proprietarul fișierului /etc/shadow va fi setat pe acest utilizator, după care atacatorul va putea edita fișierul /etc/shadow și va putea scrie noi parametrii de autentificare pentru contul root.
Vulnerabilitatea apare începând cu versiunea oath-toolkit 2.6.7 și a fost remediată (1,2,3) în versiunea 2.6.12. Poți urmări remedierea vulnerabilității în distribuțiile de pe aceste pagini: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch. Vulnerabilitatea afectează doar configurațiile în care este permisă plasarea fișierelor cu chei în directoarele personale, de exemplu, utilizând în setările PAM linia „auth [user_unknown=ignore success=ok] pam_oath.so usersfile=${HOME}/user.oath”.
De asemenea, se poate menționa vulnerabilitatea recent descoperită (CVE-2024-9313) în modulul PAM din pachetul Authd, dezvoltat de proiectul Ubuntu. Vulnerabilitatea permite unui utilizator, gestionat prin brokerul Authd, să se deghizeze ca orice alt utilizator gestionat de același broker și să treacă cu succes autentificarea prin su, sudo sau ssh sub un alt utilizator. Problema a fost remediată în versiunea Authd 0.3.5.
Sursa: opennet.ro
