Haavoittuvuudet swhkd:ssä, Waylandin pikakuvakehallinnassa

Swhkd:ssä (Simple Wayland HotKey Daemon) on tunnistettu joukko haavoittuvuuksia, jotka johtuvat virheellisestä työstä väliaikaisten tiedostojen, komentoriviparametrien ja Unix-pistokkeiden kanssa. Ohjelma on kirjoitettu ruosteella ja käsittelee pikanäppäinpainalluksia ympäristöissä, jotka perustuvat Wayland-protokollaan (konfiguraatiotiedostojen kanssa yhteensopiva analogi sxhkd-prosessille, jota käytetään X11-pohjaisissa ympäristöissä).

Paketti sisältää etuoikeutettoman swhk-prosessin, joka suorittaa pikanäppäintoimintoja, ja taustalla toimivan swhkd-prosessin, joka toimii pääkäyttäjänä ja on vuorovaikutuksessa syöttölaitteiden kanssa uinput API -tasolla. Unix-liitäntää käytetään järjestämään swhks:n ja swhkd:n välistä vuorovaikutusta. Polkit-sääntöjen avulla kuka tahansa paikallinen käyttäjä voi suorittaa /usr/bin/swhkd-prosessin pääkäyttäjänä ja välittää sille mielivaltaisia ​​parametreja.

Tunnistetut haavoittuvuudet:

  • CVE-2022-27815 – Prosessin PID:n tallentaminen tiedostoon, jolla on ennustettava nimi ja hakemistoon, johon muut käyttäjät voivat kirjoittaa (/tmp/swhkd.pid). Kuka tahansa käyttäjä voi luoda tiedoston /tmp/swhkd.pid ja laittaa siihen olemassa olevan prosessin pid:n, jolloin swhkd ei voi käynnistyä. Jos /tmp:ssä ei ole suojaa symbolisten linkkien luomiselta, haavoittuvuutta voidaan käyttää tiedostojen luomiseen tai korvaamiseen missä tahansa järjestelmähakemistossa (PID kirjoitetaan tiedostoon) tai määrittää minkä tahansa järjestelmässä olevan tiedoston sisällön (swhkd tulostaa koko PID-tiedoston sisältö stdout). On huomionarvoista, että julkaistussa korjauksessa PID-tiedostoa ei siirretty /run-hakemistoon, vaan /etc-hakemistoon (/etc/swhkd/runtime/swhkd_{uid}.pid), johon se ei myöskään kuulu.
  • CVE-2022-27814 – Käsittelemällä "-c"-komentorivivaihtoehtoa, jota käytetään määrittämään kokoonpanotiedosto, on mahdollista määrittää minkä tahansa tiedoston olemassaolo järjestelmässä. Esimerkiksi /root/.somefile tarkistaaksesi voit suorittaa "pkexec /usr/bin/swhkd -d -c /root/.somefile" ja jos tiedosto puuttuu, virhettä "/root/.somefile" ei ole olemassa. ” tulee näkyviin. Kuten ensimmäisen haavoittuvuuden tapauksessa, ongelman korjaaminen on hämmentävää - ongelman korjaaminen tiivistyy siihen tosiasiaan, että ulkoinen apuohjelma "cat" ('Command::new("/bin/cat").arg(polku) on nyt käynnistetty lukemaan asetustiedostoa. output()').
  • CVE-2022-27819 – Ongelma liittyy myös "-c"-vaihtoehdon käyttöön, mikä saa aikaan koko asetustiedoston lataamisen ja jäsentämisen tarkistamatta tiedoston kokoa ja tyyppiä. Jos esimerkiksi haluat aiheuttaa palvelun eston, koska vapaa muisti loppuu ja syntyy väärä I/O, voit määrittää estolaitteen käynnistyksen yhteydessä ("pkexec /usr/bin/swhkd -d -c /dev/sda") tai merkkilaite, joka tuottaa äärettömän tietovirran. Ongelma ratkesi nollaamalla oikeudet ennen tiedoston avaamista, mutta korjaus ei ollut valmis, koska vain käyttäjätunnus (UID) nollataan, mutta ryhmätunnus (GID) pysyy samana.
  • CVE-2022-27818 – Unix-kanta luodaan käyttämällä kirjoitettavaan hakemistoon luotua /tmp/swhkd.sock-tiedostoa, mikä johtaa samanlaisiin ongelmiin kuin ensimmäinen haavoittuvuus (kuka tahansa käyttäjä voi luoda /tmp/swhkd.sock-tiedoston ja luoda tai siepata näppäinpainallustapahtumat).
  • CVE-2022-27817 - Syöttötapahtumat hyväksytään kaikilta laitteilta ja kaikissa istunnoissa, ts. käyttäjä toisesta Wayland-istunnosta tai konsolista voi siepata tapahtumia, kun muut käyttäjät painavat pikanäppäimiä.
  • CVE-2022-27816 Swhks-prosessi, kuten swhkd, käyttää PID-tiedostoa /tmp/swhks.pid kirjoitettavassa /tmp-hakemistossa. Ongelma on samanlainen kuin ensimmäinen haavoittuvuus, mutta ei ole yhtä vaarallinen, koska swhks toimii etuoikeutettoman käyttäjän alaisuudessa.

Lähde: opennet.ru

Lisää kommentti