Zraniteľnosť v používateľskom prostredí Enlightenment, ktorá vám umožňuje získať práva root

V používateľskom prostredí Enlightenment bola identifikovaná chyba zabezpečenia (CVE-2022-37706), ktorá umožňuje neprivilegovanému lokálnemu používateľovi spúšťať kód s právami root. Zraniteľnosť ešte nebola opravená (0 dní), ale vo verejnej doméne je už dostupný exploit, ktorý bol testovaný v Ubuntu 22.04.

Problém je v spustiteľnom súbore enlightenment_sys, ktorý sa dodáva s príznakom suid root a vykonáva určité povolené príkazy, ako je pripojenie disku pomocou nástroja mount, prostredníctvom volania system(). Kvôli nesprávnemu fungovaniu funkcie, ktorá generuje reťazec odovzdaný volaniu system(), sú z argumentov spúšťaného príkazu vystrihnuté úvodzovky, ktoré je možné použiť na spustenie vlastného kódu. Napríklad pri spustení 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

z dôvodu odstránenia dvojitých úvodzoviek bude namiesto zadaného príkazu '/bin/mount ... "/dev/../tmp/;/tmp/exploit" /tmp///net' reťazec bez dvojitých úvodzoviek odovzdané funkcii system() ' /bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net', čo spôsobí príkaz '/tmp/exploit /tmp///net ', ktorý sa má vykonať samostatne namiesto toho, aby bol spracovaný ako súčasť cesty k zariadeniu. Riadky "/dev/../tmp/" a "/tmp///net" sú zvolené na obídenie kontroly argumentov pre príkaz mount v enlightenment_sys (pripájacie zariadenie musí začínať /dev/ a ukazovať na existujúci súbor, a tri znaky "/" v bode pripojenia sú určené na dosiahnutie požadovanej veľkosti cesty).

Zdroj: opennet.ru

Pridať komentár