Vulnerabilità sudo root che colpisce Linux Mint e il sistema operativo elementare

Nell'utilità sudo, utilizzato per organizzare l'esecuzione di comandi per conto di altri utenti, identificato vulnerabilità (CVE-2019-18634), che consente di aumentare i propri privilegi nel sistema all'utente root. Il problema si manifesta solo dal rilascio di sudo 1.7.1 quando si utilizza l'opzione "pwfeedback" nel file /etc/sudoers, che è disabilitata per impostazione predefinita ma abilitata su alcune distribuzioni come Linux Mint ed Elementary OS. Problema risolto nel rilascio sudo 1.8.31, pubblicato poche ore fa. La vulnerabilità rimane non risolta nei kit di distribuzione.

L'opzione “pwfeedback” abilita la visualizzazione del carattere “*” dopo ogni carattere inserito quando si inserisce una password. Per colpa di Errori Nell'implementazione della funzione getln(), definita nel file tgetpass.c, una stringa di password troppo grande passata tramite il flusso di input standard (stdin) in determinate condizioni potrebbe non entrare nel buffer allocato e sovrascrivere altri dati nello stack. L'overflow si verifica quando si esegue il codice sudo come root.

L'essenza del problema è che quando si utilizza il carattere speciale ^U (cancellazione della riga) durante l'input e se l'operazione di scrittura fallisce, il codice responsabile della cancellazione dei caratteri "*" in output reimposta i dati sulla dimensione del buffer disponibile, ma non riporta il puntatore al valore iniziale della posizione corrente nel buffer. Un altro fattore che contribuisce allo sfruttamento è la mancata disattivazione automatica della modalità “pwfeedback” quando i dati arrivano non dal terminale, ma attraverso il flusso di input (questa falla consente di creare le condizioni affinché si verifichi un errore di registrazione, ad esempio, su sistemi con unidirezionale canali senza nome si verifica un errore quando si tenta di scrivere alla fine di un canale di lettura).

Poiché un utente malintenzionato ha il controllo completo sulla sovrascrittura dei dati nello stack, non è difficile creare un exploit che gli consenta di aumentare i suoi privilegi fino a root. Il problema può essere sfruttato da qualsiasi utente, indipendentemente dalle autorizzazioni sudo o dalle impostazioni specifiche dell'utente in sudoers. Per bloccare il problema, dovresti assicurarti che non ci sia alcuna impostazione “pwfeedback” in /etc/sudoers e, se necessario, disabilitarla (“Defaults!pwfeedback”). Per verificare se c'è un problema, puoi eseguire il codice:

$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Password: errore di segmentazione

Fonte: opennet.ru

Aggiungi un commento