Sårbarhet i Enlightenment-brukermiljø som tillater root-tilgang

En sårbarhet (CVE-2022-37706) er identifisert i Enlightenment-brukermiljøet som lar en uprivilegert lokal bruker kjøre kode med rotrettigheter. Sårbarheten er ennå ikke fikset (0-dagers), men det er allerede en utnyttelse tilgjengelig i det offentlige domene, testet i Ubuntu 22.04.

Problemet er i enlightenment_sys kjørbar fil, som leveres med suid-rotflagget og utfører visse tillatte kommandoer, for eksempel å montere stasjonen med monteringsverktøyet, gjennom et kall til system(). På grunn av feil drift av funksjonen som genererer strengen som sendes til system()-kallet, kuttes anførselstegn fra argumentene til kommandoen som lanseres, som kan brukes til å kjøre din egen kode. For eksempel, når du kjører 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// / netto

på grunn av fjerning av doble anførselstegn, i stedet for den angitte kommandoen '/bin/mount ... "/dev/../tmp/;/tmp/exploit" /tmp///net' vil en streng uten doble anførselstegn være sendt til system()-funksjonen ' /bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net', som vil forårsake kommandoen '/tmp/exploit /tmp///net ' skal kjøres separat i stedet for å bli behandlet som en del av banen til enheten. Linjene "/dev/../tmp/" og "/tmp///net" er valgt for å omgå argumentkontroll for mount-kommandoen i enlightenment_sys (mount-enheten må starte med /dev/ og peke til en eksisterende fil, og de tre "/"-tegnene ved monteringspunktet er spesifisert for å oppnå ønsket banestørrelse).

Kilde: opennet.ru

Legg til en kommentar