Në mjedisin e përdoruesit Enlightenment është zbuluar një dobësi (CVE-2022-37706) që lejon një përdorues lokal të paprivilegjikuar të ekzekutojë kod me të drejtat root. Dobësia ende nuk është rregulluar (0-day), por tashmë ka një eksploit të disponueshëm në publik, i testuar në Ubuntu 22.04.
Problemi ekziston në skedarin ekzekutiv enlightenment_sys, që ofrohet me flamurin suid root dhe ekzekuton përmes thirrjes system() disa komanda të lejuara, të tilla si montimi i magazinës me utilitarin mount. Për shkak të një pune të gabuar të funksionit që formon vargun e kaluar në thirrjen system(), citatet nga argumentet e komandës së ekzekutuar hiqen, gjë që mund të përdoret për të ekzekutuar kodin tuaj. Për shembull, kur ekzekutohet 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
për shkak të heqjes së dyfishta, në vend të komandës së specifikuar ‘/bin/mount … «/dev/../tmp/;/tmp/exploit» /tmp///net’ do t’i kalojë funksionit system() një varg pa dyfishta ‘/bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net’, që do të çojë në ekzekutimin e veçantë të komandës ‘/tmp/exploit /tmp///net’ në vend që të trajtohet si pjesë e rrugës për pajisjen. Vargjet «/dev/../tmp/» dhe «/tmp///net» janë zgjedhur për të anashkaluar verifikimin e argumenteve të komandës mount në enlightenment_sys (pajisja e montimit duhet të fillojë me /dev/ dhe të tregojë për një skedar ekzistues, dhe tre karakteret «/» në pikën e montimit janë specifikuar për të arritur gjatësi të kërkuar të rrugës).
Burimi: opennet.ru
