Në swhkd (Simple Wayland HotKey Daemon) janë zbuluar një seri vulnerabilitetesh që shkaktohen nga menaxhimi i papërshtatshëm i skedareve të përkohshëm, parametrave të linjës së komandës dhe unix-socket-eve. Programi është shkruar në gjuhën Rust dhe përpunon shtypjet e tasteve të nxehta në mjediset e bazuara në protokollin Wayland (të ngjashëm në nivelin e skedave të konfigurimit me procesin sxhkd, i përdorur në mjediset e bazuara në X11).
Paketa përmban një proces të paprivilegjuar swhks, i cili ekzekuton veprimet për taste të nxehta, dhe një proces në sfond swhkd, që ekzekutohet me të drejta root dhe ndërvepron me pajisjet e hyrjes në nivelin API uinput. Për të organizuar ndërveprimin midis swhks dhe swhkd përdoret një Unix-socket. Me ndihmën e rregullave Polkit, çdo përdorues lokal i jepet mundësia të nisë procesin /usr/bin/swhkd me të drejta root dhe ti kalojë atij parametra të rastësishëm.
Vulnerabilitetet e identifikuara:
- CVE-2022-27815 â ruajtja e PID tĂ« procesit nĂ« njĂ« skedar me emĂ«r tĂ« parashikueshĂ«m dhe nĂ« njĂ« katalog tĂ« aksesueshĂ«m pĂ«r shkrim nga pĂ«rdorues tĂ« tjerĂ« (/tmp/swhkd.pid). Ădo pĂ«rdorues mund tĂ« krijojĂ« skedarin /tmp/swhkd.pid dhe ta mbushĂ« atĂ« me PID tĂ« njĂ« procesi ekzistues, qĂ« do tĂ« çonte nĂ« pamundĂ«sinĂ« e nisjes sĂ« swhkd. NĂ« mungesĂ« tĂ« mbrojtjes nga krijimi i lidhjeve simbolike nĂ« /tmp, vulnerabiliteti mund tĂ« pĂ«rdoret pĂ«r tĂ« krijuar ose ridimensionuar skedarĂ« nĂ« çdo katalog tĂ« sistemit (PID shkruhet nĂ« skedar) ose pĂ«r tĂ« pĂ«rcaktuar pĂ«rmbajtjen e çdo skedari nĂ« sistem (swhkd shfaq nĂ« stdout tĂ« gjithĂ« pĂ«rmbajtjen e skedarit PID). E veçantĂ« Ă«shtĂ« se nĂ« rregullimin e lĂ«shuar skedari PID Ă«shtĂ« zhvendosur jo nĂ« katalogun /run, por nĂ« katalogun /etc (/etc/swhkd/runtime/swhkd_{uid}.pid), ku gjithashtu nuk i takon.
- CVE-2022-27814 â duke manipuluar parametrin e linjĂ«s sĂ« komandĂ«s "-c", i cili pĂ«rdoret pĂ«r tĂ« caktuar skedarin e konfigurimit, mund tĂ« pĂ«rcaktohet ekzistenca nĂ« sistem e çdo skedari. PĂ«r shembull, pĂ«r tĂ« verifikuar /root/.somefile mund tĂ« ekzekutohet "pkexec /usr/bin/swhkd -d -c /root/.somefile" dhe nĂ«se skedari nuk ekziston, do tĂ« shfaqet njĂ« mesazh gabimi "/root/.somefile doesnât exist". Si dhe nĂ« rastin e vulnerabilitetit tĂ« parĂ«, rregullimi i problemit shkakton shqetĂ«sime â zgjidhja pĂ«rfundon duke lejuar qĂ« pĂ«r tĂ« lexuar skedarin e konfigurimit tĂ« niset njĂ« utilitar i jashtĂ«m "cat" (âCommand::new(â/bin/catâ).arg(path).output()â).
- CVE-2022-27819 â problemi Ă«shtĂ« gjithashtu i lidhur me pĂ«rdorimin e opsionit "-c", pĂ«rmes tĂ« cilit skedari i konfigurimit ngarkohet dhe analizohet plotĂ«sisht pa kontrollimin e madhĂ«sisĂ« dhe llojit tĂ« skedarit. PĂ«r shembull, pĂ«r tĂ« shkaktuar njĂ« refuzim tĂ« shĂ«rbimit pĂ«rmes shterimit tĂ« memories dhe krijimit tĂ« hyrjes/çlirimit parazitic, mund tĂ« specifikohet njĂ« pajisje blloku nĂ« nisje ("pkexec /usr/bin/swhkd -d -c /dev/sda") ose njĂ« pajisje simbolike qĂ« prodhon njĂ« rrjedhĂ« tĂ« pafund tĂ« tĂ« dhĂ«nave. Problemi Ă«shtĂ« zgjidhur duke resetuar privilegjet para hapjes sĂ« skedarit, por rregullimi rezultoi tĂ« ishte jo tĂ«rĂ«sor, pasi ndryshohet vetĂ«m identifikuesi i pĂ«rdoruesit (UID), ndĂ«rsa identifikuesi i grupit (GID) mbetet i njĂ«jtĂ«.
- CVE-2022-27818 â pĂ«r krijimin e Unix-socket-it pĂ«rdoret skedari /tmp/swhkd.sock, i krijuar nĂ« njĂ« katalog tĂ« hapur pĂ«r shkrim, çka çon nĂ« probleme tĂ« ngjashme me vulnerabilitetin e parĂ« (çdo pĂ«rdorues mund tĂ« krijojĂ« /tmp/swhkd.sock dhe tĂ« gjenerojĂ« ose kapĂ« ngjarjet e shtypjes sĂ« tasteve).
- CVE-2022-27817 â ngjarjet e hyrjes pranojnĂ« nga tĂ« gjitha pajisjet dhe nĂ« tĂ« gjitha seancat, dmth. njĂ« pĂ«rdorues nga njĂ« seancĂ« tjetĂ«r Wayland ose nga konsola mund tĂ« kapĂ« ngjarjet kur shtypin taste tĂ« nxehta pĂ«rdorues tĂ« tjerĂ«.
- CVE-2022-27816 â procesi swhks, ashtu si swhkd, pĂ«rdor skedarin PID /tmp/swhks.pid nĂ« katalogun e hapur pĂ«r shkrim /tmp. Problemi Ă«shtĂ« i ngjashĂ«m me vulnerabilitetin e parĂ«, por jo aq i rrezikshĂ«m, pasi swhks ekzekutohet nĂ«n njĂ« pĂ«rdorues tĂ« paprivilegjuar.
Burimi: opennet.ru
