In de gebruikersomgeving Enlightenment is een kwetsbaarheid ontdekt (CVE-2022-37706) die een niet-bevoorrechte lokale gebruiker in staat stelt om code met root-rechten uit te voeren. De kwetsbaarheid is nog niet verholpen (0-day), maar er is al een exploit beschikbaar die getest is op Ubuntu 22.04.
Het probleem zit in het uitvoerbare bestand enlightenment_sys, dat met de suid root-vlag is meegeleverd en bepaalde toegestane commando's uitvoert via een system() aanroep, zoals het mounten van een schijf met de mount-tool. Door een fout in de functie die de string samenstelt die naar de system() aanroep wordt doorgegeven, worden aanhalingstekens uit de argumenten van het te draaien commando verwijderd, wat kan worden gebruikt om eigen code uit te voeren. Bijvoorbeeld, bij het uitvoeren van 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
Door het verwijderen van dubbele aanhalingstekens, zal in plaats van het opgegeven commando '/bin/mount ⦠'/dev/../tmp/;/tmp/exploit' /tmp///net' een string zonder dubbele aanhalingstekens naar de system() functie worden doorgegeven '/bin/mount ⦠/dev/../tmp/;/tmp/exploit /tmp///net', wat zal leiden tot de afzonderlijke uitvoering van het commando '/tmp/exploit /tmp///net' in plaats van de verwerking als onderdeel van het pad naar het apparaat. De strings '/dev/../tmp/' en '/tmp///net' zijn gekozen om de argumentcontroles van het mount-commando in enlightenment_sys te omzeilen (de montageschijf moet beginnen met /dev/ en naar een bestaand bestand wijzen, en de drie '/'-tekens in het montagepad zijn aangegeven om de benodigde padgrootte te bereiken).
Bron: opennet.ru
