Chyba zabezpečení v uživatelském prostředí Enlightenment, která vám umožňuje získat práva root

V uživatelském prostředí Enlightenment byla identifikována chyba zabezpečení (CVE-2022-37706), která umožňuje nepřivilegovanému místnímu uživateli spouštět kód s právy root. Chyba zabezpečení ještě nebyla opravena (0 dní), ale ve veřejné doméně je již k dispozici zneužití testované v Ubuntu 22.04.

Problém je ve spustitelném souboru enlightenment_sys, který se dodává s příznakem suid root a provádí určité povolené příkazy, jako je připojení disku pomocí nástroje mount, prostřednictvím volání system(). Kvůli nesprávné činnosti funkce, která generuje řetězec předaný volání system(), jsou z argumentů spouštěného příkazu oříznuty uvozovky, které lze použít ke spuštění vlastního kódu. Například při spuštění 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// / síť

kvůli odstranění dvojitých uvozovek bude místo zadaného příkazu '/bin/mount ... "/dev/../tmp/;/tmp/exploit" /tmp///net' řetězec bez uvozovek předáno funkci system() ' /bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net', což způsobí příkaz '/tmp/exploit /tmp///net ', který se má provést samostatně, místo aby byl zpracován jako součást cesty k zařízení. Řádky "/dev/../tmp/" a "/tmp///net" jsou vybrány pro obcházení kontroly argumentů pro příkaz mount v enlightenment_sys (připojovací zařízení musí začínat /dev/ a ukazovat na existující soubor, a tři znaky "/" v bodě připojení jsou určeny pro dosažení požadované velikosti cesty).

Zdroj: opennet.ru

Přidat komentář