Waylandi otseteehalduri swhkd haavatavused

Swhkd-s (Simple Wayland HotKey Daemon) on tuvastatud rida turvaauke, mis on põhjustatud ebaõigest tööst ajutiste failide, käsurea parameetrite ja Unixi pesadega. Programm on kirjutatud Rust keeles ja käsitleb kiirklahvide vajutamist Waylandi protokollil põhinevates keskkondades (konfiguratsioonifailiga ühilduv sxhkd protsessi analoog, mida kasutatakse X11-põhistes keskkondades).

Pakett sisaldab privilegeerimata swhk-protsessi, mis teostab kiirklahvide toiminguid, ja tausta swhkd-protsessi, mis töötab juurfunktsiooniga ja suhtleb sisendseadmetega uinput API tasemel. Unixi pesa kasutatakse swhksi ja swhkd interaktsiooni korraldamiseks. Kasutades Polkiti reegleid, saab iga kohalik kasutaja käivitada protsessi /usr/bin/swhkd administraatorina ja edastada sellele suvalised parameetrid.

Tuvastatud haavatavused:

  • CVE-2022-27815 – protsessi PID salvestamine etteaimatava nimega faili ja teiste kasutajate poolt kirjutatavasse kataloogi (/tmp/swhkd.pid). Iga kasutaja saab luua faili /tmp/swhkd.pid ja panna sinna olemasoleva protsessi pid, mis muudab swhkd käivitamise võimatuks. Kui /tmp sümboolsete linkide loomise eest kaitse puudub, saab haavatavust kasutada failide loomiseks või ülekirjutamiseks mis tahes süsteemikataloogis (PID kirjutatakse faili) või süsteemi mis tahes faili sisu määramiseks (swhkd prindib kogu PID-faili sisu stdout). Tähelepanuväärne on, et välja antud paranduses viidi PID-fail mitte kataloogi /run, vaid kataloogi /etc (/etc/swhkd/runtime/swhkd_{uid}.pid), kuhu see samuti ei kuulu.
  • CVE-2022-27814 – konfiguratsioonifaili määramiseks kasutatava käsurea suvandiga "-c" manipuleerides on võimalik kindlaks teha mis tahes faili olemasolu süsteemis. Näiteks faili /root/.somefile kontrollimiseks võite käivitada "pkexec /usr/bin/swhkd -d -c /root/.somefile" ja kui fail puudub, siis viga "/root/.somefile" ei eksisteeri " kuvatakse. Nagu esimese haavatavuse puhul, on probleemi lahendamine mõistatuslik – probleemi lahendamine taandub asjaolule, et väline utiliit “cat” ('Command::new(“/bin/cat”)).arg(path) käivitatakse nüüd konfiguratsioonifaili lugemiseks. output()').
  • CVE-2022-27819 – probleem on seotud ka suvandi "-c" kasutamisega, mille tõttu laaditakse ja sõelutakse kogu konfiguratsioonifail ilma faili suurust ja tüüpi kontrollimata. Näiteks teenuse keelamise tekitamiseks vaba mälu lõppemise ja võlts-I/O loomisega saate käivitamisel määrata blokeerimisseadme ("pkexec /usr/bin/swhkd -d -c /dev/sda") või märgiseade, mis toodab lõpmatut andmevoogu. Probleem lahendati õiguste lähtestamisega enne faili avamist, kuid parandus ei olnud täielik, kuna lähtestatakse ainult kasutaja ID (UID), kuid rühma ID (GID) jääb samaks.
  • CVE-2022-27818 – Unixi sokkel luuakse kirjutatavas kataloogis loodud faili /tmp/swhkd.sock abil, mis põhjustab sarnaseid probleeme nagu esimene haavatavus (iga kasutaja saab luua faili /tmp/swhkd.sock ja luua või pealtkuulada klahvivajutuse sündmused).
  • CVE-2022-27817 – sisendsündmusi aktsepteeritakse kõikidest seadmetest ja kõigis seanssides, st. mõne muu Waylandi seansi või konsooli kasutaja saab sündmusi pealt kuulata, kui teised kasutajad kiirklahve vajutavad.
  • CVE-2022-27816 Swhks-protsess, nagu ka swhkd, kasutab PID-faili /tmp/swhks.pid kirjutatavas /tmp kataloogis. Probleem sarnaneb esimese haavatavusega, kuid pole nii ohtlik, kuna swhks töötab privilegeerimata kasutaja all.

Allikas: opennet.ru

Lisa kommentaar