Ahultasunak swhkd-en, Wayland-en lasterbideen kudeatzailea

swhkd-en (Simple Wayland HotKey Daemon) ahultasun sorta bat identifikatu dira aldi baterako fitxategiekin, komando-lerroko parametroekin eta Unix-en socketekin lan okerrengatik. Programa Rust-en idatzita dago eta Wayland protokoloan oinarritutako inguruneetan laster-tekla sakatzea maneiatzen du (X11n oinarritutako inguruneetan erabiltzen den sxhkd prozesuaren konfigurazio-fitxategiekin bateragarria den analogoa).

Paketeak laster-teklen ekintzak egiten dituen pribilegiorik gabeko swhks prozesu bat eta root gisa exekutatzen den eta uinput API mailan sarrerako gailuekin elkarreragiten duen atzeko planoko swhkd prozesu bat ditu. Unix socket bat erabiltzen da swhks eta swhkd arteko elkarrekintza antolatzeko. Polkit arauak erabiliz, tokiko edozein erabiltzailek /usr/bin/swhkd prozesua exekutatu dezake root gisa eta parametro arbitrarioak pasa diezazkioke.

Identifikatutako ahultasunak:

  • CVE-2022-27815 - Prozesuaren PID bat gordetzea aurreikus daitekeen izena duen fitxategi batean eta beste erabiltzaileek idazteko moduko direktorio batean (/tmp/swhkd.pid). Edozein erabiltzailek /tmp/swhkd.pid fitxategi bat sor dezake eta bertan dagoen prozesu baten pid-a jar dezake, eta horrek swhkd ezingo du abiarazi. /tmp-n esteka sinbolikoak sortzearen aurkako babesik ez badago, ahultasuna sistemaren edozein direktoriotako fitxategiak sortzeko edo gainidazteko erabil daiteke (PID fitxategian idazten da) edo sistemako edozein fitxategiren edukia zehazteko (swhkd-ek inprimatzen du. PID fitxategiaren eduki osoa stdout-era). Aipagarria da kaleratutako konponketan PID fitxategia ez dela /run direktoriora eraman, baizik eta /etc direktoriora (/etc/swhkd/runtime/swhkd_{uid}.pid), non ere ez dagoen.
  • CVE-2022-27814 - Konfigurazio-fitxategi bat zehazteko erabiltzen den "-c" komando-lerroko aukera manipulatuz, sisteman edozein fitxategiren existentzia zehaztea posible da. Adibidez, /root/.somefile egiaztatzeko “pkexec /usr/bin/swhkd -d -c /root/.somefile” exekutatu dezakezu eta fitxategia falta bada, errorea “/root/.somefile ez da existitzen ” bistaratuko da. Lehen ahultasunaren kasuan bezala, arazoa konpontzea harrigarria da - arazoa konpontzea kanpoko erabilgarritasuna "cat" ('Command::new("/bin/cat")) .arg(path) da. orain abiarazi da konfigurazio fitxategia irakurtzeko. output()').
  • CVE-2022-27819 - Arazoa "-c" aukeraren erabilerarekin ere lotuta dago, eta horrek konfigurazio fitxategi osoa kargatu eta analizatu egiten du fitxategiaren tamaina eta mota egiaztatu gabe. Adibidez, memoria librerik gabe geratuz eta I/O faltsuak sortuz zerbitzuaren ukapena eragiteko, blokeo-gailu bat zehaztu dezakezu abiaraztean ("pkexec /usr/bin/swhkd -d -c /dev/sda") edo datu-korronte infinitua sortzen duen karaktere-gailu bat. Arazoa fitxategia ireki aurretik pribilegioak berrezarrita konpondu zen, baina konponketa ez zen osatu, erabiltzaile IDa (UID) bakarrik berrezartzen baita, baina taldearen IDa (GID) berdina izaten jarraitzen du.
  • CVE-2022-27818 - Unix socket bat idazteko direktorio batean sortutako /tmp/swhkd.sock fitxategia erabiliz sortzen da, eta horrek lehen ahultasunen antzeko arazoak sortzen ditu (edozein erabiltzailek /tmp/swhkd.sock sor dezake eta sortu edo atzeman dezake teklak sakatzeak).
  • CVE-2022-27817 - Sarrerako gertaerak gailu guztietatik eta saio guztietan onartzen dira, hau da. Wayland-eko beste saio bateko edo kontsolako erabiltzaile batek gertaerak atzeman ditzake beste erabiltzaileek laster-teklak sakatzen dituztenean.
  • CVE-2022-27816 swhks prozesuak, swhkd bezala, PID fitxategia erabiltzen du /tmp/swhks.pid idatz daitekeen /tmp direktorioan. Arazoa lehen ahultasunaren antzekoa da, baina ez da hain arriskutsua swhks pribilegiorik gabeko erabiltzaile baten menpe exekutatzen ari delako.

Iturria: opennet.ru

Gehitu iruzkin berria