Kwesbaarhede in swhkd, 'n kortpadbestuurder vir Wayland

'n Reeks kwesbaarhede is in swhkd (Simple Wayland HotKey Daemon) geïdentifiseer wat veroorsaak word deur verkeerde werk met tydelike lêers, opdragreëlparameters en Unix-voetstukke. Die program is in Rust geskryf en hanteer snelsleuteldruk in omgewings gebaseer op die Wayland-protokol ('n konfigurasie-lêer-versoenbare analoog van die sxhkd-proses wat in X11-gebaseerde omgewings gebruik word).

Die pakket bevat 'n onbevoorregte swhks-proses wat snelsleutelaksies uitvoer, en 'n agtergrond swhkd-proses wat as wortel loop en in wisselwerking met invoertoestelle op die uinput API-vlak is. 'n Unix-sok word gebruik om die interaksie tussen swhks en swhkd te organiseer. Deur Polkit-reëls te gebruik, kan enige plaaslike gebruiker die /usr/bin/swhkd-proses as wortel laat loop en arbitrêre parameters daaraan deurgee.

Geïdentifiseerde kwesbaarhede:

  • CVE-2022-27815 – Stoor 'n proses-PID in 'n lêer met 'n voorspelbare naam en in 'n gids wat deur ander gebruikers geskryf kan word (/tmp/swhkd.pid). Enige gebruiker kan 'n lêer /tmp/swhkd.pid skep en die pid van 'n bestaande proses daarin plaas, wat sal maak dat swhkd nie kan begin nie. As daar geen beskerming teen die skep van simboliese skakels in /tmp is nie, kan die kwesbaarheid gebruik word om lêers in enige stelselgids te skep of te oorskryf (die PID word na die lêer geskryf) of om die inhoud van enige lêer op die stelsel te bepaal (swhkd druk die hele inhoud van die PID-lêer na stdout). Dit is opmerklik dat in die vrygestelde regstelling die PID-lêer nie na die /run-gids geskuif is nie, maar na die /etc-gids (/etc/swhkd/runtime/swhkd_{uid}.pid), waar dit ook nie hoort nie.
  • CVE-2022-27814 – Deur die “-c”-opdragreëlopsie wat gebruik word om 'n konfigurasielêer te spesifiseer, te manipuleer, is dit moontlik om die bestaan ​​van enige lêer op die stelsel te bepaal. Byvoorbeeld, om /root/.somefile na te gaan, kan jy “pkexec /usr/bin/swhkd -d -c /root/.somefile” laat loop en as die lêer ontbreek, bestaan ​​die fout “/root/.somefile nie. ” sal vertoon word. Soos in die geval van die eerste kwesbaarheid, is die regstelling van die probleem raaiselagtig - om die probleem reg te stel kom daarop neer dat die eksterne nutsprogram “kat” ('Command::new(“/bin/cat”)).arg(pad) word nou geloods om die konfigurasielêer te lees. output()').
  • CVE-2022-27819 – Die probleem hou ook verband met die gebruik van die “-c” opsie, wat veroorsaak dat die hele konfigurasielêer gelaai en ontleed word sonder om die grootte en tipe van die lêer na te gaan. Byvoorbeeld, om 'n ontkenning van diens te veroorsaak deur vrye geheue op te raak en valse I/O te skep, kan jy 'n bloktoestel by opstart spesifiseer ("pkexec /usr/bin/swhkd -d -c /dev/sda") of 'n karaktertoestel wat 'n oneindige stroom data produseer. Die probleem is opgelos deur die voorregte terug te stel voordat die lêer oopgemaak word, maar die oplossing was nie voltooi nie, aangesien slegs die gebruiker-ID (UID) teruggestel word, maar die groep-ID (GID) bly dieselfde.
  • CVE-2022-27818 – 'n Unix-sok word geskep met behulp van die /tmp/swhkd.sock-lêer wat in 'n skryfbare gids geskep is, wat lei tot soortgelyke probleme as die eerste kwesbaarheid (enige gebruiker kan /tmp/swhkd.sock skep en genereer of onderskep sleuteldrukgebeurtenisse).
  • CVE-2022-27817 - Invoergebeurtenisse word vanaf alle toestelle en in alle sessies aanvaar, d.w.s. 'n gebruiker van 'n ander Wayland-sessie of vanaf die konsole kan gebeure onderskep wanneer sneltoetse deur ander gebruikers gedruk word.
  • CVE-2022-27816 Die swhks-proses, soos swhkd, gebruik die PID-lêer /tmp/swhks.pid in die skryfbare /tmp-gids. Die probleem is soortgelyk aan die eerste kwesbaarheid, maar is nie so gevaarlik nie omdat swhks onder 'n onbevoorregte gebruiker loop.

Bron: opennet.ru

Voeg 'n opmerking