U korisničkom okruženju Enlightenment otkrivena je ranjivost (CVE-2022-37706) koja omogućava neprivilegiranom lokalnom korisniku da izvrši kod s pravima root. Ranjivost još nije ispravljena (0-day), ali je u slobodnom pristupu već dostupan exploit koji je testiran na Ubuntu 22.04.
Problem se pojavljuje u izvršnoj datoteci enlightenment_sys koja se isporučuje s suid root oznakom i izvršava određene dopuštene naredbe putem system() poziva, poput montiranja uređaja pomoću mount alata. Zbog nepravilnog rada funkcije koja oblikuje niz poslan u system() poziv, navodnici se izrezuju iz argumenata pokrenute naredbe, što može biti iskorišteno za pokretanje vlastitog koda. Na primjer, pri pokretanju 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
zbog izrezivanja dvostrukih navodnika, umjesto navedene naredbe ‘/bin/mount … "/dev/../tmp/;/tmp/exploit" /tmp///net’ u system() funkciju bit će poslan niz bez dvostrukih navodnika ‘/bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net’, što će rezultirati odvojenim izvršavanjem naredbe ‘/tmp/exploit /tmp///net’ umjesto obrade kao dijela putanje do uređaja. Nizovi ‘/dev/../tmp/’ i ‘/tmp///net’ odabrani su kako bi zaobišli provjeru argumenata mount naredbe u enlightenment_sys (uređaj za montiranje mora početi s /dev/ i ukazivati na postojeću datoteku, a tri znaka ‘/’ u točki montiranja navedeni su za dostizanje potrebne dužine putanje).
Izvor: opennet.ru
