Udhaifu katika swhkd, meneja wa njia ya mkato wa Wayland

Msururu wa udhaifu umetambuliwa katika swhkd (Simple Wayland HotKey Daemon) unaosababishwa na kazi isiyo sahihi na faili za muda, vigezo vya mstari wa amri na soketi za Unix. Programu imeandikwa kwa Rust na inashughulikia ubonyezo wa kitufe cha hotkey katika mazingira kulingana na itifaki ya Wayland (analogi inayolingana na faili ya mchakato wa sxhkd unaotumiwa katika mazingira ya msingi wa X11).

Kifurushi hiki kinajumuisha mchakato wa swhks ambao haujaribiwa ambao hufanya vitendo vya hotkey, na mchakato wa chinichini wa swhkd ambao unaendeshwa kama mzizi na kuingiliana na vifaa vya kuingiza data kwenye kiwango cha API ya kuingiza. Soketi ya Unix hutumiwa kupanga mwingiliano kati ya swhks na swhkd. Kwa kutumia sheria za Polkit, mtumiaji yeyote wa ndani anaweza kuendesha mchakato wa /usr/bin/swhkd kama mzizi na kupitisha vigezo vya kiholela.

Udhaifu uliotambuliwa:

  • CVE-2022-27815 - Kuhifadhi mchakato wa PID kwenye faili yenye jina linaloweza kutabirika na katika saraka ambayo inaweza kuandikwa na watumiaji wengine (/tmp/swhkd.pid). Mtumiaji yeyote anaweza kuunda faili /tmp/swhkd.pid na kuweka pid ya mchakato uliopo ndani yake, ambayo itafanya swhkd kushindwa kuanza. Ikiwa hakuna ulinzi dhidi ya kuunda viungo vya ishara katika /tmp, hatari inaweza kutumika kuunda au kubatilisha faili kwenye saraka yoyote ya mfumo (PID imeandikwa kwa faili) au kuamua yaliyomo kwenye faili yoyote kwenye mfumo (swhkd huchapisha faili). yaliyomo kwenye faili ya PID hadi stdout). Ni vyema kutambua kwamba katika kurekebisha iliyotolewa faili ya PID haikuhamishwa sio kwenye saraka ya / kukimbia, lakini kwenye saraka /etc (/etc/swhkd/runtime/swhkd_{uid}.pid), ambapo pia haifai.
  • CVE-2022-27814 - Kwa kuendesha chaguo la mstari wa amri "-c" kutumika kutaja faili ya usanidi, inawezekana kuamua kuwepo kwa faili yoyote kwenye mfumo. Kwa mfano, kuangalia /root/.somefile unaweza kuendesha β€œpkexec /usr/bin/swhkd -d -c /root/.somefile” na ikiwa faili haipo, hitilafu β€œ/root/.somefile haipo ” itaonyeshwa. Kama ilivyo katika mazingira magumu ya kwanza, kurekebisha tatizo ni kutatanisha - kurekebisha tatizo kunatokana na ukweli kwamba shirika la nje "paka" ('Amri::mpya("/bin/paka")).arg(njia) sasa imezinduliwa ili kusoma faili ya usanidi. output()').
  • CVE-2022-27819 - Suala pia linahusiana na matumizi ya chaguo "-c", ambayo husababisha faili nzima ya usanidi kupakiwa na kuchanganuliwa bila kuangalia ukubwa na aina ya faili. Kwa mfano, ili kusababisha kukataliwa kwa huduma kwa kukosa kumbukumbu ya bure na kuunda I/O ya uwongo, unaweza kutaja kifaa cha kuzuia wakati wa kuanza ("pkexec /usr/bin/swhkd -d -c /dev/sda") au kifaa cha herufi ambacho hutoa mtiririko usio na kikomo wa data . Tatizo lilitatuliwa kwa kuweka upya marupurupu kabla ya kufungua faili, lakini urekebishaji haukukamilika, kwani kitambulisho cha mtumiaji tu (UID) kinawekwa upya, lakini kitambulisho cha kikundi (GID) kinabaki sawa.
  • CVE-2022-27818 - Soketi ya Unix imeundwa kwa kutumia /tmp/swhkd.sock faili iliyoundwa katika saraka inayoweza kuandikwa, ambayo husababisha maswala sawa na hatari ya kwanza (mtumiaji yeyote anaweza kuunda /tmp/swhkd.sock na kutoa au kukatiza matukio ya kubonyeza kitufe).
  • CVE-2022-27817 - Matukio ya kuingiza yanakubaliwa kutoka kwa vifaa vyote na katika vipindi vyote, i.e. mtumiaji kutoka kipindi kingine cha Wayland au kutoka kwa kiweko anaweza kukatiza matukio wakati funguo za moto zinabonyezwa na watumiaji wengine.
  • CVE-2022-27816 Mchakato wa swhks, kama vile swhkd, hutumia faili ya PID /tmp/swhks.pid katika saraka inayoweza kuandikwa /tmp. Tatizo ni sawa na athari ya kwanza, lakini si hatari kwa sababu swhks inaendeshwa chini ya mtumiaji asiye na haki.

Chanzo: opennet.ru

Kuongeza maoni