Sårbarhed i enlightenment-brugermiljø, der tillader root-adgang

En sårbarhed (CVE-2022-37706) er blevet identificeret i Enlightenment-brugermiljøet, der tillader en uprivilegeret lokal bruger at udføre kode med root-rettigheder. Sårbarheden er endnu ikke rettet (0-dages), men der er allerede en udnyttelse tilgængelig i det offentlige domæne, testet i Ubuntu 22.04.

Problemet er i den eksekverbare enlightenment_sys, som leveres med suid root-flaget og udfører visse tilladte kommandoer, såsom montering af drevet med monteringsværktøjet, gennem et kald til system(). På grund af den forkerte funktion af den funktion, der genererer strengen, der sendes til system()-kaldet, skæres anførselstegn fra argumenterne for den kommando, der startes, som kan bruges til at køre din egen kode. For eksempel, når du kø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å grund af fjernelse af dobbelte anførselstegn, i stedet for den angivne kommando '/bin/mount ... "/dev/../tmp/;/tmp/exploit" /tmp///net' vil en streng uden dobbelte anførselstegn være videregivet til system()-funktionen ' /bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net', hvilket vil forårsage kommandoen '/tmp/exploit /tmp///net ' skal udføres separat i stedet for at blive behandlet som en del af stien til enhed. Linjerne "/dev/../tmp/" og "/tmp///net" er valgt for at omgå argumentkontrol for mount-kommandoen i enlightenment_sys (mount-enheden skal starte med /dev/ og pege på en eksisterende fil, og de tre "/"-tegn ved monteringspunktet er specificeret for at opnå den nødvendige stistørrelse).

Kilde: opennet.ru

Tilføj en kommentar