root လုပ်ပိုင်ခွင့်များရရှိရန်ခွင့်ပြုသော Enlightenment အသုံးပြုသူပတ်ဝန်းကျင်ရှိ အားနည်းချက်

အားနည်းချက်တစ်ခု (CVE-2022-37706) ကို အခွင့်ထူးခံမဟုတ်သော ဒေသခံအသုံးပြုသူတစ်ဦးအား အမြစ်အခွင့်အရေးဖြင့် ကုဒ်ကို လုပ်ဆောင်ခွင့်ပြုသည့် Enlightenment သုံးစွဲသူပတ်ဝန်းကျင်တွင် ဖော်ထုတ်တွေ့ရှိထားသည်။ အားနည်းချက်ကို မပြင်ရသေးပါ (0-day)၊ သို့သော် Ubuntu 22.04 တွင် စမ်းသပ်ထားသည့် public domain တွင် ရရှိနိုင်သော exploit တစ်ခု ရှိနှင့်ပြီးဖြစ်သည်။

ပြဿနာမှာ suid root flag ဖြင့် ပို့ဆောင်ပြီး mount utility ဖြင့် drive ကို mount utility ဖြင့် တပ်ဆင်ခြင်းကဲ့သို့သော အချို့သော ခွင့်ပြုမိန့်များကို လုပ်ဆောင်ပေးသည့် enlightenment_sys executable တွင်၊ system() ကိုခေါ်ဆိုခြင်းဖြစ်ပါသည်။ system() ခေါ်ဆိုမှုသို့ပေးပို့သောစာကြောင်းကိုထုတ်ပေးသည့်လုပ်ဆောင်ချက်၏မမှန်ကန်သောလုပ်ဆောင်ချက်ကြောင့်၊ သင့်ကိုယ်ပိုင်ကုဒ်ကိုလည်ပတ်ရန်အတွက်အသုံးပြုနိုင်သည့် command များ၏ကိုးကားချက်များမှကိုးကားချက်များကိုဖြတ်တောက်သည်။ ဥပမာအားဖြင့်၊ mkdir -p /tmp/net mkdir -p "/tmp/;/tmp/exploit" echo "/bin/sh" > /tmp/exploit chmod a+x /tmp/exploit enlightenment_sys /bin/mount - o noexec,nosuid,utf8,nodev,iocharset=utf8,utf8=0,utf8=1,uid=$(id -u), “/dev/../tmp/;/tmp/exploit” /tmp// /ကျော့

ကိုးကားနှစ်ထပ်ကို ဖယ်ရှားခြင်းကြောင့်၊ သတ်မှတ်ထားသည့် command '/bin/mount ... "/dev/../tmp/;/tmp/exploit" /tmp///net' တွင် ကိုးကားနှစ်ထပ်မပါတဲ့ စာကြောင်းတစ်ခု ဖြစ်လိမ့်မည်။ system() လုပ်ဆောင်ချက် ' /bin/mount … /dev/../tmp/;/tmp/exploit /tmp///net' သို့ ရောက်သွားသည်၊ ၎င်းသည် command '/tmp/exploit /tmp///net' ကို ဖြစ်စေသည်။ ' စက်ပစ္စည်းသို့ လမ်းကြောင်း၏ အစိတ်အပိုင်းအဖြစ် စီမံဆောင်ရွက်မည့်အစား သီးခြားစီလုပ်ဆောင်ရန်။ "/dev/../tmp/" နှင့် "/tmp///net" လိုင်းများသည် enlightenment_sys တွင် mount command ကို စစ်ဆေးခြင်းအတွက် အငြင်းအခုံကို ကျော်ဖြတ်ရန် ရွေးချယ်ထားပါသည် (mount device သည် /dev/ ဖြင့် စတင်ပြီး ရှိပြီးသားဖိုင်ကို ညွှန်ပေးရမည်၊ နှင့် mount point ရှိ "/" စာလုံးသုံးလုံးကို လိုအပ်သောလမ်းကြောင်းအရွယ်အစားကိုရရှိရန် သတ်မှတ်ထားသည်)။

source: opennet.ru

မှတ်ချက် Add