CVE-2017-1000367 è una grave vulnerabilità di Linux radice scoperta da Qualys Security ricercatori. Il difetto risiede in Sudo di “get_process_ttyname()” funzione per Linux e può consentire a un utente con privilegi sudo per eseguire comandi come root o elevare privilegi di radice.
sudo, o “superuser fare!,” è un programma per Linux e UNIX che consente agli utenti standard di eseguire comandi specifici come utente superuser o root.
CVE-2017-1000367: Dettagli
La funzione si apre si apre questa funzione “/proc /[pid]/statistica” (uomo proc) e legge il numero del dispositivo della tty da campo 7 (tty_nr), spiegano i ricercatori. La cosa brutta è che questi campi sono separati da spazi e il campo 2 (comm, il nome del file del comando) può contenere spazi che è in effetti il problema.
Più specificamente:
Per esempio, se eseguiamo Sudo attraverso il link simbolico “./ 1 “, get_process_ttyname() chiamate sudo_ttyname_dev() per cercare il numero di dispositivo tty inesistente “1” nei search_devs built-in[]. Il Prossimo, sudo_ttyname_dev() chiama la funzione sudo_ttyname_scan() per cercare il seguente dispositivo TTY inesistente “1” in un attraversamento in ampiezza di “/dev”.
La vulnerabilità deriva dal modo Sudo analizza le informazioni “tty” dal file di stato del processo nel filesystem proc. Su macchine Linux, sudo analizza il / proc /[pid]/stat file per delineare il numero del dispositivo della tty del processo dal campo 7 (tty_nr), come spiegato nella advisory di sicurezza.
Sfruttando CVE-2017-1000367
Per la falla da sfruttare, l'utente deve già privilegi sudo.
SELinux deve essere abilitata sul sistema e sudo deve essere stato compilato con il supporto a SELinux, ricercatori aggiungono.
Per sfruttare il bug, l'utente può scegliere un numero di dispositivo che attualmente non esiste in / dev. Se sudo non trova il terminale sotto il / dev / pts directory, si esegue una ricerca in ampiezza di / dev. È possibile allocare una pseudo-terminale dopo sudo è controllato / dev / pts ma prima sudo esegue la ricerca in ampiezza di / dev. L'attaccante può quindi creare un link simbolico al dispositivo appena creato in una directory scrivibile mondiale in / dev, come / dev / shm.
Questo file verrà impiegato come standard input del comando, uscita ed errore quando viene specificato un ruolo SELinux sulla riga di comando sudo. Se il collegamento simbolico in / dev / shm è sostituito con un link a un altro file prima che venga aperto da sudo, è possibile sovrascrivere un file arbitrario scrivendo sullo standard output o errore standard. Questo potrebbe essere aumentata a accesso root completo da file attendibile come / etc / shadow o anche / etc / sudoers.
Come risolvere CVE-2017-1000367
Per fortuna, il problema è stato risolto e patchato in sudo 1.8.20p1.
Anche, la correzione per l'analisi / proc /[pid]/stat una nuova riga è contenuta, è incluso nel sudo 1.8.20p2. A causa dei cambiamenti in sudo 1.8.20p1 a come / dev è attraversato, non è possibile sfruttare un / proc /[pid]/file di stat che contiene un ritorno a capo, ricercatori concludono.