Խոցելիություններ swhkd-ում, Wayland-ի դյուրանցումների կառավարիչ

swhkd-ում (Simple Wayland HotKey Daemon) հայտնաբերվել են մի շարք խոցելիություններ, որոնք առաջացել են ժամանակավոր ֆայլերի, հրամանի տողի պարամետրերի և Unix վարդակների հետ սխալ աշխատանքի հետևանքով: Ծրագիրը գրված է Rust-ով և կարգավորում է թեժ ստեղների սեղմումը Wayland արձանագրության վրա հիմնված միջավայրերում (X11-ի վրա հիմնված միջավայրերում օգտագործվող sxhkd գործընթացի կազմաձևման ֆայլի հետ համատեղելի անալոգը):

Փաթեթը ներառում է ոչ արտոնյալ swhks գործընթաց, որն իրականացնում է hotkey գործողություններ, և ֆոնային swhkd գործընթաց, որն աշխատում է որպես արմատ և փոխազդում է մուտքային սարքերի հետ uinput API մակարդակում: 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» տարբերակի օգտագործման հետ, որի պատճառով ամբողջ կազմաձևման ֆայլը բեռնվում և վերլուծվում է՝ առանց ֆայլի չափն ու տեսակը ստուգելու: Օրինակ՝ ծառայության մերժում առաջացնելու համար՝ սպառելով ազատ հիշողությունը և ստեղծելով կեղծ I/O, դուք կարող եք նշել բլոկ սարքը գործարկման ժամանակ («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-ի մեկ այլ նստաշրջանի կամ վահանակի օգտատերը կարող է ընդհատել իրադարձությունները, երբ այլ օգտվողների կողմից սեղմվում են թեժ ստեղները:
  • CVE-2022-27816 Swhks գործընթացը, ինչպես swhkd-ը, օգտագործում է PID ֆայլը /tmp/swhks.pid գրվող /tmp գրացուցակում: Խնդիրը նման է առաջին խոցելիությանը, բայց այնքան էլ վտանգավոր չէ, քանի որ swhks-ն աշխատում է ոչ արտոնյալ օգտատիրոջ ներքո:

Source: opennet.ru

Добавить комментарий