Kwesbaarheid in Verligting-gebruikersomgewing wat worteltoegang toelaat

'n Kwesbaarheid (CVE-2022-37706) is in die Verligting-gebruikeromgewing geïdentifiseer wat 'n onbevoorregte plaaslike gebruiker toelaat om kode met wortelregte uit te voer. Die kwesbaarheid is nog nie reggestel nie (0-dag), maar daar is reeds 'n uitbuiting beskikbaar in die publieke domein, getoets in Ubuntu 22.04.

Die probleem is in die enlightenment_sys-uitvoerbare lêer, wat saam met die suid-wortelvlag gestuur word en sekere toegelate opdragte uitvoer, soos om die aandrywer met die mount-nutsding te monteer, deur 'n oproep na system(). As gevolg van die verkeerde werking van die funksie wat die string genereer wat na die stelsel()-oproep gestuur word, word aanhalings gesny uit die argumente van die opdrag wat geloods word, wat gebruik kan word om jou eie kode uit te voer. Byvoorbeeld, wanneer jy mkdir -p /tmp/net mkdir -p "/tmp/;/tmp/exploit" hardloop, eggo "/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

as gevolg van die verwydering van dubbele aanhalingstekens, in plaas van die gespesifiseerde opdrag '/bin/mount ... "/dev/../tmp/;/tmp/exploit" /tmp///net' sal 'n string sonder dubbele aanhalingstekens wees oorgedra na die stelsel() funksie ' /bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net', wat die opdrag '/tmp/exploit /tmp///net sal veroorsaak ' om afsonderlik uitgevoer te word in plaas daarvan om as deel van die pad na toestel verwerk te word. Die reëls "/dev/../tmp/" en "/tmp///net" word gekies om argumentkontrolering vir die mount-opdrag in enlightenment_sys te omseil (die mount-toestel moet begin met /dev/ en na 'n bestaande lêer wys, en die drie "/" karakters by die monteerpunt word gespesifiseer om die vereiste padgrootte te bereik).

Bron: opennet.ru

Voeg 'n opmerking