È stata rilevata una vulnerabilità nell'ambiente utente Enlightenment (CVE-2022-37706) che consente a un utente locale non privilegiato di eseguire codice con diritti di root. La vulnerabilità non è ancora stata corretta (0-day), ma è già disponibile un exploit pubblico, testato su Ubuntu 22.04.
Il problema è presente nell'eseguibile enlightenment_sys, fornito con il flag suid root e che esegue tramite chiamata system() comandi autorizzati specifici, come il montaggio di unità con l'utility mount. A causa di un malfunzionamento della funzione che genera la stringa da passare a system(), le virgolette degli argomenti del comando eseguito vengono rimosse, permettendo di eseguire il proprio codice. Ad esempio, eseguendo mkdir -p /tmp/net mkdir -p '/tmp/;/tmp/exploit' echo '/bin/sh' > /tmp/exploit chmod a+x /tmp/exploit enlightenment_sys /bin/mount -o noexec,nosuid,utf8,nodev,iocharset=utf8,utf8=0,utf8=1,uid=$(id -u), '/dev/../tmp/;/tmp/exploit' /tmp///net
A causa della rimozione delle virgolette doppie, invece del comando indicato '/bin/mount ... '/dev/../tmp/;/tmp/exploit' /tmp///net' verrà passata alla funzione system() una stringa senza virgolette '/bin/mount ... /dev/../tmp/;/tmp/exploit /tmp///net', il che porterà all'esecuzione separata del comando '/tmp/exploit /tmp///net' anziché al trattamento come parte del percorso del dispositivo. Le stringhe '/dev/../tmp/' e '/tmp///net' sono state selezionate per eludere il controllo degli argomenti del comando mount in enlightenment_sys (il dispositivo di montaggio deve iniziare con '/dev/' e puntare a un file esistente, mentre i tre caratteri '/' nel punto di montaggio sono indicati per ottenere la dimensione del percorso richiesta).
Fonte: opennet.ru
