Nel modulo PAM pam_oath, facente parte del pacchetto oath-toolkit e utilizzato nell'autenticazione a due fattori con password temporanee (OTP), è stata identificata una vulnerabilità (CVE-2024-47191) che consente a un utente non privilegiato di ottenere accesso root al sistema.
Il modulo pam_oath viene eseguito con privilegi di root e originariamente era progettato per memorizzare le chiavi OATH nel file /etc/users.oath, a cui ha accesso solo l'utente root. Nella versione oath-toolkit 2.6.7 è stata aggiunta la possibilità di memorizzare i file con le chiavi nelle directory home degli utenti (~/.config/users.oath). Gli utenti non privilegiati hanno avuto la possibilità di modificare i file con le proprie chiavi, ma pam_oath, accedendo a questi file, non ha ridotto i privilegi e ha continuato a utilizzare metodi di lavoro insicuri, pensati per file memorizzati in directory non modificabili.
La vulnerabilità è causata dal fatto che, dopo ogni autenticazione riuscita con una password temporanea, pam_oath sovrascriveva il file con le chiavi per evitare il riutilizzo di una stessa password. L'operazione di sovrascrittura comportava la creazione di un file di lock nella stessa directory, la registrazione del nuovo contenuto in un file con estensione «.new» e la sostituzione del file originale con la nuova versione. In questo caso, il file con estensione «.new» veniva creato con gli stessi diritti del file di destinazione, ma la scrittura avveniva tramite un processo con privilegi di root e senza controllare l’esistenza del file.
Se il file era memorizzato nella directory di sistema non si verificavano problemi, ma con l'introduzione del supporto per memorizzare file con le chiavi nelle directory home, è emersa una vulnerabilità facilmente sfruttabile. Per attaccare è sufficiente creare un collegamento simbolico «~/.config/oath.secrets.new» e indirizzarlo su qualsiasi file di sistema, che verrà sovrascritto dopo un'autenticazione riuscita.
Per ottenere accesso root, è possibile indirizzare il collegamento simbolico al file /etc/shadow. In questo caso pam_oath scriverà in /etc/shadow l'elenco attuale delle chiavi e sincronizzerà il proprietario e i diritti di accesso con il file users.oath. Poiché il file users.oath appartiene all'utente, come proprietario di /etc/shadow verrà assegnato quest'ultimo, dopodiché l'attaccante sarà in grado di modificare il file /etc/shadow e registrare nuovi parametri di accesso per l'account root.
La vulnerabilità si manifesta a partire dalla versione oath-toolkit 2.6.7 ed è stata risolta (1,2,3) nella versione 2.6.12. Puoi monitorare la risoluzione della vulnerabilità nei vari distribuzioni su queste pagine: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch. La vulnerabilità colpisce solo le configurazioni in cui è consentito memorizzare file con le chiavi nelle directory home, ad esempio utilizzando nella configurazione PAM la stringa «auth [user_unknown=ignore success=ok] pam_oath.so usersfile=${HOME}/user.oath».
Inoltre, si può menzionare una vulnerabilità recentemente scoperta (CVE-2024-9313) nel modulo PAM del pacchetto Authd, sviluppato dal progetto Ubuntu. La vulnerabilità consente a un utente gestito tramite il broker Authd di impersonare qualsiasi altro utente gestito dallo stesso broker e di autenticarsi con successo tramite su, sudo o ssh come un altro utente. Il problema è stato risolto nella versione Authd 0.3.5.
Fonte: opennet.ru
