Осебиятҳо дар swhkd, мудири миёнабур барои Wayland

Дар swhkd (Simple Wayland HotKey Daemon) як қатор осебпазириҳо муайян карда шуданд, ки дар натиҷаи кори нодуруст бо файлҳои муваққатӣ, параметрҳои сатри фармон ва розеткаҳои Unix ба вуҷуд омадаанд. Ин барнома дар Rust навишта шудааст ва пахшкунии тугмаҳои зудро дар муҳитҳо дар асоси протоколи Wayland идора мекунад (аналоги бо конфигуратсияи файли мувофиқи раванди sxhkd, ки дар муҳитҳои X11 истифода мешавад).

Маҷмӯа як раванди swhks-и беимтиёзро дар бар мегирад, ки амалҳои hotkey-ро иҷро мекунад ва раванди swhkd замина, ки ҳамчун реша кор мекунад ва бо дастгоҳҳои воридотӣ дар сатҳи API uinput ҳамкорӣ мекунад. Сокети Unix барои ташкили ҳамкории байни swhks ва swhkd истифода мешавад. Бо истифода аз қоидаҳои Polkit, ҳар як корбари маҳаллӣ метавонад раванди /usr/bin/swhkd-ро ҳамчун реша иҷро кунад ва ба он параметрҳои худсарона интиқол диҳад.

Камбудиҳои муайяншуда:

  • CVE-2022-27815 - Захираи PID-и раванд ба файл бо номи пешбинишаванда ва дар директорияе, ки аз ҷониби корбарони дигар навишта мешавад (/tmp/swhkd.pid). Ҳар як корбар метавонад файли /tmp/swhkd.pid эҷод кунад ва дар он pid-и раванди мавҷуда гузорад, ки swhkd-ро оғоз карда наметавонад. Агар аз эҷоди истинодҳои рамзӣ дар /tmp ҳеҷ гуна муҳофизат мавҷуд набошад, осебпазирӣ метавонад барои эҷод ё баргардонидани файлҳо дар ҳама гуна директорияи система (PID ба файл навишта мешавад) ё муайян кардани мундариҷаи ягон файли система истифода шавад (swhkd тамоми мундариҷаи файли PID ба stdout). Қобили зикр аст, ки дар ислоҳи нашршуда файли PID на ба директорияи /run, балки ба директорияи /etc (/etc/swhkd/runtime/swhkd_{uid}.pid) интиқол дода шуд, ки он ҳам он ҷо тааллуқ надорад.
  • CVE-2022-27814 - Бо истифода аз интихоби сатри фармони "-c", ки барои муайян кардани файли конфигуратсия истифода мешавад, мавҷудияти ҳама гуна файлро дар система муайян кардан мумкин аст. Масалан, барои санҷидани /root/.somefile шумо метавонед "pkexec /usr/bin/swhkd -d -c /root/.somefile" -ро иҷро кунед ва агар файл мавҷуд набошад, хатогии "/root/.somefile вуҷуд надорад" ” намоиш дода мешавад. Тавре ки дар мавриди осебпазирии аввал, ислоҳи мушкилот ҳайратовар аст - ислоҳи мушкилот аз он иборат аст, ки утилитаи беруна "cat" ('Command::new(“/bin/cat”)).arg(path) ҳоло барои хондани файли конфигуратсия оғоз мешавад. output()').
  • CVE-2022-27819 - Масъала инчунин ба истифодаи опсияи "-c" марбут аст, ки боиси бор кардани тамоми файли конфигуратсия ва таҳлили бе тафтиши андоза ва навъи файл мегардад. Масалан, барои рад кардани хидмат тавассути тамом шудани хотираи холӣ ва эҷоди вуруди бардурӯғ, шумо метавонед ҳангоми оғозёбӣ дастгоҳи блокро муайян кунед ("pkexec /usr/bin/swhkd -d -c /dev/sda") ё дастгоҳи аломате, ки ҷараёни беохири маълумотро тавлид мекунад. Мушкилот тавассути аз нав танзимкунии имтиёзҳо пеш аз кушодани файл ҳал карда шуд, аммо ислоҳ ба анҷом нарасид, зеро танҳо ID корбар (UID) аз нав барқарор карда мешавад, аммо ID гурӯҳ (GID) ҳамоно боқӣ мемонад.
  • CVE-2022-27818 – Сокети Unix бо истифода аз файли /tmp/swhkd.sock, ки дар директорияи навишташаванда сохта шудааст, сохта мешавад, ки боиси мушкилоти шабеҳи осебпазирии аввал мегардад (ҳар корбар метавонад /tmp/swhkd.sock-ро эҷод кунад ва тавлид ё боздошта кунад. рӯйдодҳои пахши тугмаҳо).
  • CVE-2022-27817 - Ҳодисаҳои воридотӣ аз ҳама дастгоҳҳо ва дар ҳама сессияҳо қабул карда мешаванд, яъне. корбар аз сеанси дигари Wayland ё аз консол метавонад рӯйдодҳоро ҳангоми пахш кардани тугмаҳои hotkeys аз ҷониби корбарони дигар боздорад.
  • CVE-2022-27816 Раванди swhks, мисли swhkd, файли PID-ро /tmp/swhks.pid дар феҳристи навишташавандаи /tmp истифода мебарад. Мушкилот ба осебпазирии аввал монанд аст, аммо он қадар хатарнок нест, зеро swhks дар зери корбари беимтиёз кор мекунад.

Манбаъ: opennet.ru

Илова Эзоҳ