Wayland အတွက် ဖြတ်လမ်းမန်နေဂျာ swhkd တွင် အားနည်းချက်များ

ယာယီဖိုင်များ၊ command line parameters များနှင့် Unix sockets များ မှားယွင်းစွာ လုပ်ဆောင်မှုကြောင့် ဖြစ်သော swhkd (Simple Wayland HotKey Daemon) တွင် အားနည်းချက်များကို ဆက်တိုက်ဖော်ထုတ်ထားပါသည်။ ပရိုဂရမ်ကို Rust ဖြင့်ရေးသားထားပြီး Wayland ပရိုတိုကော (X11-အခြေခံပတ်ဝန်းကျင်များတွင်အသုံးပြုသည့် sxhkd လုပ်ငန်းစဉ်၏ဖွဲ့စည်းပုံ-ဖိုင်နှင့်လိုက်ဖက်သော analogue တစ်ခု) ကိုအခြေခံ၍ ပတ်၀န်းကျင်တွင် hotkey နှိပ်ခြင်းကိုကိုင်တွယ်သည်။

ပက်ကေ့ဂျ်တွင် ဟော့ကီးလုပ်ဆောင်ချက်များကို လုပ်ဆောင်သည့် အခွင့်ထူးမခံသော swhks လုပ်ငန်းစဉ်နှင့် uinput API အဆင့်တွင် root အဖြစ် လုပ်ဆောင်ပြီး input devices များနှင့် အပြန်အလှန်တုံ့ပြန်သည့် နောက်ခံ swkhd လုပ်ငန်းစဉ်တို့ ပါဝင်သည်။ Swhks နှင့် swhkd အကြား အပြန်အလှန်ဆက်သွယ်မှုကို စီစဉ်ရန် Unix socket ကို အသုံးပြုသည်။ Polkit စည်းမျဉ်းများကိုအသုံးပြုခြင်းဖြင့်၊ မည်သည့်ဒေသခံအသုံးပြုသူမဆို /usr/bin/swhkd လုပ်ငန်းစဉ်ကို root အဖြစ် run နိုင်ပြီး ၎င်းထံသို့ မတရားသောဘောင်များကို ဖြတ်သန်းနိုင်သည်။

ဖော်ထုတ်ထားသော အားနည်းချက်များ-

  • CVE-2022-27815 - လုပ်ငန်းစဉ် PID ကို ကြိုတင်မှန်းဆနိုင်သော အမည်တစ်ခုနှင့် အခြားအသုံးပြုသူများ (/tmp/swhkd.pid) ဖြင့် ရေးသားနိုင်သော ဖိုင်တစ်ခုသို့ သိမ်းဆည်းခြင်း။ အသုံးပြုသူတိုင်းသည် /tmp/swhkd.pid ဖိုင်ကိုဖန်တီးနိုင်ပြီး ရှိပြီးသားလုပ်ငန်းစဉ်တစ်ခု၏ pid ကို ၎င်းတွင်ထည့်သွင်းနိုင်သည်၊ ၎င်းသည် swhkd ကိုစတင်၍မရတော့ပါ။ /tmp တွင် သင်္ကေတလင့်ခ်များကို ဖန်တီးခြင်းမှ အကာအကွယ်မရှိပါက၊ မည်သည့်စနစ်လမ်းညွှန်တွင်မဆို ဖိုင်များဖန်တီးရန် သို့မဟုတ် overwrite လုပ်ရန် အားနည်းချက်ကို အသုံးပြုနိုင်ပါသည်။ (PID သည် ဖိုင်သို့ရေးသားထားသည်) သို့မဟုတ် စနစ်ပေါ်ရှိ မည်သည့်ဖိုင်၏အကြောင်းအရာများကို ဆုံးဖြတ်နိုင်သည် (swhkd သည် အဆိုပါပရင့်ထုတ်ခြင်း PID ဖိုင်၏ အကြောင်းအရာ တစ်ခုလုံးကို stdout)။ ထွက်ရှိလာသည့် ပြုပြင်မှုတွင် PID ဖိုင်ကို /run directory သို့မရွှေ့ဘဲ၊ ၎င်းနှင့်လည်းမသက်ဆိုင်သည့် /etc/swhkd/runtime/swhkd_{uid}.pid သို့ ပြောင်းရွှေ့ခဲ့သည်မှာ မှတ်သားစရာဖြစ်ပါသည်။
  • CVE-2022-27814 - configuration file ကိုသတ်မှတ်ရာတွင်အသုံးပြုသည့် "-c" command line option ကို ကိုင်တွယ်ခြင်းဖြင့်၊ system ပေါ်ရှိ မည်သည့်ဖိုင်၏တည်ရှိမှုကို ဆုံးဖြတ်ရန် ဖြစ်နိုင်သည်။ ဥပမာအားဖြင့်၊ /root/.somefile ကိုစစ်ဆေးရန် "pkexec /usr/bin/swhkd -d -c /root/.somefile" ကိုဖွင့်နိုင်ပြီး ဖိုင်ပျောက်ဆုံးပါက၊ အမှားအယွင်း "/root/.somefile မရှိပါ။ ” လို့ ဖော်ပြပါလိမ့်မယ်။ ပထမအားနည်းချက်၏ကိစ္စတွင်၊ ပြဿနာကိုပြင်ခြင်းသည်ရှုပ်ထွေးသည် - ပြင်ပ utility “cat” ('Command::new(“/bin/cat”)).arg(path) ဟူသောအချက်ကိုဖြေရှင်းခြင်းသည် ပြဿနာကိုဖြေရှင်းခြင်းမှ ပြုတ်ကျသွားသည်။ configuration file ကိုဖတ်ရန် ယခုထွက်ရှိပါပြီ။ output()')။
  • CVE-2022-27819 - ပြဿနာသည် ဖိုင်အရွယ်အစားနှင့် အမျိုးအစားကို မစစ်ဆေးဘဲ ဖွဲ့စည်းမှုဖိုင်တစ်ခုလုံးကို တင်ပြီး ခွဲခြမ်းစိတ်ဖြာနိုင်စေသည့် “-c” option ကို အသုံးပြုခြင်းနှင့်လည်း သက်ဆိုင်ပါသည်။ ဥပမာအားဖြင့်၊ အခမဲ့မမ်မိုရီကုန်သွားကာ ပြင်းထန်သော I/O ဖန်တီးခြင်းဖြင့် ဝန်ဆောင်မှုကို ငြင်းပယ်ရန်၊ စတင်ချိန်တွင် ဘလောက်ကိရိယာကို သင်သတ်မှတ်နိုင်သည် ("pkexec /usr/bin/swhkd -d -c /dev/sda") သို့မဟုတ် အကန့်အသတ်မရှိ ဒေတာစီးကြောင်းကို ထုတ်လုပ်ပေးသည့် ဇာတ်ကောင်ကိရိယာ။ ဖိုင်ကိုမဖွင့်မီ အခွင့်ထူးများကို ပြန်လည်သတ်မှတ်ခြင်းဖြင့် ပြဿနာကို ဖြေရှင်းနိုင်သော်လည်း အသုံးပြုသူ ID (UID) ကိုသာ ပြန်လည်သတ်မှတ်ထားသောကြောင့်၊ အုပ်စု ID (GID) သည် တူညီနေပါသည်။
  • CVE-2022-27818 - Unix socket တစ်ခုသည် စာရေးနိုင်သော directory တွင် ဖန်တီးထားသော /tmp/swhkd.sock ဖိုင်ကို အသုံးပြု၍ ဖန်တီးထားပြီး၊ ယင်းသည် ပထမအားနည်းချက်အဖြစ် အလားတူပြဿနာများကို ဖြစ်ပေါ်စေသည် (မည်သူမဆို /tmp/swhkd.sock ကို ဖန်တီးနိုင်ပြီး ထုတ်လုပ်နိုင် သို့မဟုတ် ကြားဖြတ်နိုင်ပါသည်။ သော့နှိပ်ပွဲများ)။
  • CVE-2022-27817 - ထည့်သွင်းခြင်းဖြစ်ရပ်များကို စက်များအားလုံးနှင့် ဆက်ရှင်များအားလုံးတွင် လက်ခံပါသည်။ ဆိုလိုသည်မှာ၊ အခြား Wayland စက်ရှင်မှ အသုံးပြုသူတစ်ဦး သို့မဟုတ် ကွန်ဆိုးလ်မှ အခြားအသုံးပြုသူများသည် ဟော့ကီးများကို နှိပ်သည့်အခါ အဖြစ်အပျက်များကို ကြားဖြတ်နိုင်သည်။
  • CVE-2022-27816 swhkd ကဲ့သို့ swkhks လုပ်ငန်းစဉ်သည် ရေးနိုင်သော /tmp directory တွင် PID ဖိုင် /tmp/swhks.pid ကို အသုံးပြုသည်။ ပြဿနာသည် ပထမအားနည်းချက်နှင့် ဆင်တူသော်လည်း၊ swhks သည် အခွင့်ထူးမခံရသေးသောအသုံးပြုသူအောက်တွင် လုပ်ဆောင်နေသောကြောင့် အန္တရာယ်မရှိပါ။

source: opennet.ru

မှတ်ချက် Add