firejail တွင် အားနည်းချက်သည် system သို့ root access ကိုခွင့်ပြုသည်။

အားနည်းချက်တစ်ခု (CVE-2022-31214) ကို ပြည်တွင်းအသုံးပြုသူတစ်ဦးအား လက်ခံဆောင်ရွက်ပေးသည့်စနစ်တွင် root လုပ်ပိုင်ခွင့်များရရှိစေသည့် သီးခြားအက်ပလီကေးရှင်းလုပ်ဆောင်မှုအတွက် အသုံးဝင်သည့် Firejail တွင် ဖော်ထုတ်တွေ့ရှိထားသည်။ firejail utility ကို ထည့်သွင်းပြီး openSUSE၊ Debian၊ Arch, Gentoo နှင့် Fedora တို့၏ လက်ရှိထွက်ရှိမှုများတွင် စမ်းသပ်ထားသော အများသူငှာ ဒိုမိန်းတွင် အလုပ်လုပ်နိုင်သော exploit တစ်ခုရှိပါသည်။ ပြဿနာကို firejail 0.9.70 ဖြင့် လွှတ်ပေးထားသည်။ အကာအကွယ်အတွက် ဖြေရှင်းနည်းတစ်ခုအနေဖြင့် ဆက်တင်များ (/etc/firejail/firejail.config) တွင် " join no" နှင့် "force-nonewprivs yes" ဘောင်များကို သတ်မှတ်နိုင်သည်။

Firejail သည် သီးခြားခွဲထုတ်ရန်အတွက် Linux ရှိ namespaces၊ AppArmor နှင့် စနစ်ခေါ်ဆိုမှုစစ်ထုတ်ခြင်း (seccomp-bpf) ကိုအသုံးပြုသော်လည်း သီးခြားလုပ်ဆောင်မှုကို စနစ်ထည့်သွင်းရန် အထူးအခွင့်အရေးများ လိုအပ်ပြီး ၎င်းသည် utility flag suid root သို့မဟုတ် sudo ဖြင့် လုပ်ဆောင်ခြင်းမှရရှိသော မြင့်မားသောအခွင့်အရေးများလိုအပ်ပါသည်။ အားနည်းချက်သည် “--join=” ရွေးချယ်မှု၏ ယုတ္တိဗေဒဆိုင်ရာ အမှားတစ်ခုကြောင့် ဖြစ်ပေါ်လာခြင်းဖြစ်သည်။ "၊ ၎င်းတွင် လုပ်ဆောင်နေသော လုပ်ငန်းစဉ် သတ်မှတ်ပေးသည့် ပတ်ဝန်းကျင်၏ အဓိပ္ပါယ်ဖွင့်ဆိုချက်ဖြင့် (သဲပုံးပတ်ဝန်းကျင်အတွက် လော့ဂ်အင် အမိန့်ပေးချက်နှင့် တူညီသော လော့ဂ်အင်ကွန်မန်း) ကို ချိတ်ဆက်ရန် ရည်ရွယ်ထားသည်။ ကြိုတင်အခွင့်ထူးပြန်လည်သတ်မှတ်ခြင်းအဆင့်အတွင်း firejail သည် သတ်မှတ်ထားသည့်လုပ်ငန်းစဉ်၏အခွင့်ထူးများကိုဆုံးဖြတ်ပြီး “-join” ရွေးချယ်မှုကို အသုံးပြု၍ ပတ်ဝန်းကျင်နှင့်ချိတ်ဆက်ထားသော လုပ်ငန်းစဉ်အသစ်တွင် ၎င်းတို့ကို အသုံးချသည်။

ချိတ်ဆက်ခြင်းမပြုမီ၊ ၎င်းသည် သတ်မှတ်ထားသော လုပ်ငန်းစဉ်သည် firejail ပတ်၀န်းကျင်တွင် လုပ်ဆောင်နေခြင်းရှိမရှိ စစ်ဆေးပေးသည်။ ဤစစ်ဆေးမှုသည် /run/firejail/mnt/join ဖိုင်၏ပါဝင်မှုကို အကဲဖြတ်သည်။ အားနည်းချက်ကို အသုံးချရန်၊ တိုက်ခိုက်သူသည် mount namespace ကို အသုံးပြု၍ စိတ်ကူးယဉ်ဆန်ဆန်၊ သီးခြားမဟုတ်သော firejail ပတ်ဝန်းကျင်ကို အတုယူပြီး ၎င်းနှင့် ချိတ်ဆက်ပြီးနောက် “--join” ရွေးချယ်မှုဖြင့် ချိတ်ဆက်နိုင်သည်။ အကယ်၍ ဆက်တင်များသည် လုပ်ငန်းစဉ်အသစ်များ (prctl NO_NEW_PRIVS) တွင် နောက်ထပ်အခွင့်ထူးများရယူခြင်းကို တားမြစ်သည့်မုဒ်ကို ဖွင့်မထားပါက firejail သည် အသုံးပြုသူကို dummy ပတ်၀န်းကျင်တစ်ခုသို့ ချိတ်ဆက်ပြီး init လုပ်ငန်းစဉ် (PID 1) ၏ သုံးစွဲသူ namespace ဆက်တင်များကို အသုံးပြုရန် ကြိုးစားမည်ဖြစ်သည်။

ရလဒ်အနေဖြင့်၊ "firejail -join" မှတစ်ဆင့် ချိတ်ဆက်ထားသော လုပ်ငန်းစဉ်သည် မပြောင်းလဲသောအခွင့်ထူးများဖြင့် အသုံးပြုသူ၏မူရင်းအသုံးပြုသူ ID namespace တွင် အဆုံးသတ်မည်ဖြစ်ပြီး၊ သို့သော် တိုက်ခိုက်သူမှ လုံးဝထိန်းချုပ်ထားသည့် မတူညီသော mount point space တွင်ဖြစ်သည်။ တိုက်ခိုက်သူသည် သူဖန်တီးထားသော mount point space တွင် setuid-root ပရိုဂရမ်များကို လုပ်ဆောင်နိုင်သည်၊ ဥပမာအားဖြင့်၊ ၎င်း၏ဖိုင်အဆင့်အောက်ရှိ /etc/sudoers ဆက်တင်များ သို့မဟုတ် PAM ကန့်သတ်ချက်များကို ပြောင်းလဲခြင်းနှင့် sudo သို့မဟုတ် sudo ကိုအသုံးပြု၍ root လုပ်ပိုင်ခွင့်ဖြင့် အမိန့်ပေးချက်များကို လုပ်ဆောင်နိုင်ခြင်း၊ su အသုံးအဆောင်များ။

source: opennet.ru

မှတ်ချက် Add