Wayland uchun yorliq menejeri swhkd-dagi zaifliklar

Vaqtinchalik fayllar, buyruq qatori parametrlari va Unix soketlari bilan noto‘g‘ri ishlash natijasida yuzaga kelgan bir qator zaifliklar swhkd (Simple Wayland HotKey Daemon) da aniqlandi. Dastur Rust-da yozilgan va Wayland protokoli (X11-ga asoslangan muhitlarda ishlatiladigan sxhkd jarayonining konfiguratsiya fayliga mos analogi) asosidagi muhitda tezkor tugmachalarni bosishni boshqaradi.

Paket tezkor tugmalar amallarini bajaradigan imtiyozsiz swhks jarayonini va ildiz sifatida ishlaydigan va uinput API darajasida kiritish qurilmalari bilan o'zaro ta'sir qiluvchi fon swhkd jarayonini o'z ichiga oladi. Unix rozetkasi swhks va swhkd o'rtasidagi o'zaro aloqani tashkil qilish uchun ishlatiladi. Polkit qoidalaridan foydalanib, har qanday mahalliy foydalanuvchi /usr/bin/swhkd jarayonini root sifatida ishga tushirishi va unga o'zboshimchalik parametrlarini o'tkazishi mumkin.

Aniqlangan zaifliklar:

  • CVE-2022-27815 – PID jarayonini bashorat qilinadigan nomga ega faylga va boshqa foydalanuvchilar yoza oladigan katalogga saqlash (/tmp/swhkd.pid). Har qanday foydalanuvchi /tmp/swhkd.pid faylini yaratishi va unga mavjud jarayonning pid-ni qo'yishi mumkin, bu esa swhkd-ni ishga tushira olmaydi. Agar /tmp-da ramziy havolalar yaratishdan himoya bo'lmasa, zaiflik har qanday tizim katalogida fayllarni yaratish yoki qayta yozish (PID faylga yoziladi) yoki tizimdagi istalgan faylning mazmunini aniqlash uchun ishlatilishi mumkin (swhkd PID faylining barcha mazmunini stdout-ga). Shunisi e'tiborga loyiqki, chiqarilgan tuzatishda PID fayli /run katalogiga emas, balki u tegishli bo'lmagan /etc katalogiga (/etc/swhkd/runtime/swhkd_{uid}.pid) ko'chirildi.
  • CVE-2022-27814 - Konfiguratsiya faylini belgilash uchun foydalaniladigan "-c" buyruq qatori opsiyasini o'zgartirish orqali tizimda istalgan fayl mavjudligini aniqlash mumkin. Masalan, /root/.somefile-ni tekshirish uchun siz “pkexec /usr/bin/swhkd -d -c /root/.somefile” ni ishga tushirishingiz mumkin va agar fayl etishmayotgan bo'lsa, “/root/.somefile mavjud emas” xatosi. ” ko'rsatiladi. Birinchi zaiflikda bo'lgani kabi, muammoni hal qilish jumboqdir - muammoni hal qilish tashqi yordam dasturi "mushuk" ('Buyruq::new("/bin/cat")).arg(yo'l) bilan bog'liq. konfiguratsiya faylini o'qish uchun endi ishga tushirildi. output()').
  • CVE-2022-27819 - Muammo, shuningdek, "-c" opsiyasidan foydalanish bilan bog'liq bo'lib, bu faylning o'lchami va turini tekshirmasdan butun konfiguratsiya faylining yuklanishi va tahlil qilinishiga olib keladi. Masalan, bo'sh xotira tugashi va soxta kiritish-chiqarish yaratish orqali xizmat ko'rsatishni rad etish uchun siz ishga tushirish vaqtida blokirovka qurilmasini belgilashingiz mumkin (“pkexec /usr/bin/swhkd -d -c /dev/sda”) yoki cheksiz ma'lumotlar oqimini ishlab chiqaradigan belgi qurilmasi. Muammo faylni ochishdan oldin imtiyozlarni tiklash yo'li bilan hal qilindi, ammo tuzatish tugallanmadi, chunki faqat foydalanuvchi identifikatori (UID) qayta o'rnatiladi, lekin guruh identifikatori (GID) bir xil bo'lib qoladi.
  • CVE-2022-27818 – Unix rozetkasi yoziladigan katalogda yaratilgan /tmp/swhkd.sock fayli yordamida yaratiladi, bu birinchi zaiflik kabi muammolarga olib keladi (har qanday foydalanuvchi /tmp/swhkd.sock yaratishi va yaratishi yoki ushlab turishi mumkin) tugmani bosish hodisalari).
  • CVE-2022-27817 - Kirish hodisalari barcha qurilmalardan va barcha seanslarda qabul qilinadi, ya'ni. boshqa Wayland sessiyasidan yoki konsoldan foydalanuvchi boshqa foydalanuvchilar tomonidan tezkor tugmalar bosilganda hodisalarni ushlab turishi mumkin.
  • CVE-2022-27816 swhks jarayoni, swhkd kabi, yoziladigan /tmp katalogidagi /tmp/swhks.pid PID faylidan foydalanadi. Muammo birinchi zaiflikka o'xshaydi, lekin unchalik xavfli emas, chunki swhks imtiyozsiz foydalanuvchi ostida ishlaydi.

Manba: opennet.ru

a Izoh qo'shish