Linux kernel ၏ eBPF စနစ်ခွဲရှိ အားနည်းချက်များ

အားနည်းချက်တစ်ခု (CVE-2021-29154) ကို eBPF စနစ်ခွဲတွင် ဖော်ထုတ်နိုင်ခဲ့ပြီး၊ ၎င်းသည် ခြေရာခံခြင်းအတွက် ကိုင်တွယ်သူများကို လည်ပတ်စေခြင်း၊ စနစ်ခွဲများ၏ လုပ်ဆောင်ချက်ကို ပိုင်းခြားစိတ်ဖြာခြင်းနှင့် အသွားအလာများကို စီမံခန့်ခွဲခြင်း၊ Linux kernel အတွင်းရှိ အထူး virtual machine တစ်ခုတွင် JIT ဖြင့် လုပ်ဆောင်နိုင်သည်၊ kernel အဆင့်တွင်၎င်းတို့၏ကုဒ်ကိုအကောင်အထည်ဖော်ရန်ပြည်တွင်းအသုံးပြုသူ။ ပြဿနာသည် 5.11.12 (ပါဝင်သော) ထုတ်ဝေမှုအထိ ပေါ်လာပြီး ဖြန့်ဝေမှုများ (Debian၊ Ubuntu၊ RHEL၊ Fedora၊ SUSE၊ Arch) တွင် မဖြေရှင်းရသေးပါ။ အဆိုပါ fix ကို patch အဖြစ်ရနိုင်သည်။

အားနည်းချက်ကို ဖော်ထုတ်ခဲ့သော သုတေသီများ၏ အဆိုအရ ၎င်းတို့သည် အခွင့်ထူးမရသေးသော သုံးစွဲသူတစ်ဦးမှ အသုံးပြုနိုင်သည့် 32- နှင့် 64-bit x86 စနစ်များအတွက် အသုံးချမှုဆိုင်ရာ ရှေ့ပြေးပုံစံကို တီထွင်နိုင်ခဲ့သည်။ သို့သော်၊ Red Hat မှ eBPF စနစ်ခေါ်ဆိုမှုကို အသုံးပြုသူထံ ဆက်သွယ်နိုင်မှု ရှိမရှိပေါ်တွင်မူတည်ပြီး ပြဿနာ၏ ပြင်းထန်မှုအပေါ် မူတည်ကြောင်း မှတ်ချက်ပြုပါသည်။ ဥပမာအားဖြင့်၊ RHEL နှင့် မူရင်းဖွဲ့စည်းပုံရှိ အခြား Linux ဖြန့်ဝေမှုအများစုတွင် BPF JIT ကိုဖွင့်ထားလျှင် အားနည်းချက်ကို အသုံးချနိုင်ပြီး အသုံးပြုသူတွင် CAP_SYS_ADMIN လုပ်ပိုင်ခွင့်ရှိသည်။ ဖြေရှင်းနည်းအနေဖြင့်၊ command ကိုအသုံးပြု၍ BPF JIT ကိုပိတ်ရန် အကြံပြုထားသည်- echo 0 > /proc/sys/net/core/bpf_jit_enable

ပြဿနာသည် JIT compiler ၏စက်ကုဒ်ထုတ်လုပ်ခြင်းလုပ်ငန်းစဉ်အတွင်း ဌာနခွဲညွှန်ကြားချက်များအတွက် အော့ဖ်ဆက်ကို တွက်ချက်ရာတွင် အမှားအယွင်းတစ်ခုကြောင့် ဖြစ်ပေါ်လာခြင်းဖြစ်သည်။ အထူးသဖြင့်၊ ဌာနခွဲညွှန်ကြားချက်များထုတ်ပေးသည့်အခါ၊ ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းအဆင့်ကိုဖြတ်သန်းပြီးနောက် အော့ဖ်ဆက်ပြောင်းလဲသွားနိုင်ကြောင်း ထည့်သွင်းစဉ်းစားမည်မဟုတ်ပါ။ ဤချို့ယွင်းချက်အား မှားယွင်းသော စက်ကုဒ်ကို ထုတ်လုပ်ပြီး kernel အဆင့်တွင် လုပ်ဆောင်ရန် အသုံးပြုနိုင်သည်။

၎င်းသည် မကြာသေးမီက eBPF စနစ်ခွဲရှိ တစ်ခုတည်းသောအားနည်းချက်မဟုတ်ကြောင်း မှတ်သားဖွယ်ဖြစ်ပါသည်။ မတ်လကုန်တွင်၊ kernel (CVE-2020-27170၊ CVE-2020-27171) တွင် နောက်ထပ်အားနည်းချက်နှစ်ခုကို ဖော်ထုတ်တွေ့ရှိခဲ့ပြီး kernel memory ၏အကြောင်းအရာများကို ဆုံးဖြတ်ခွင့်ပြုသည့် eBPF ကိုအသုံးပြု၍ ရှောင်ကွင်းနိုင်စေပါသည်။ အချို့သော လုပ်ငန်းဆောင်ရွက်မှုများကို မှန်းဆပြီး လုပ်ဆောင်ရန် အခြေအနေများ ဖန်တီးခြင်း၏ ရလဒ်ကြောင့် ဖြစ်သည်။ Spectre တိုက်ခိုက်မှုသည် မှန်းဆနိုင်သော ညွှန်ကြားချက်များကို လုပ်ဆောင်ခြင်းဆီသို့ ဦးတည်စေသည့် အခွင့်ထူးခံကုဒ်တွင် သတ်မှတ်ထားသော ညွှန်ကြားချက်များ ရှိနေရန် လိုအပ်သည်။ eBPF တွင်၊ အကောင်အထည်ဖော်ရန်အတွက် ပေးပို့ထားသော BPF ပရိုဂရမ်များဖြင့် ကိုင်တွယ်ဖြေရှင်းမှုများမှတစ်ဆင့် ထိုညွှန်ကြားချက်များကို ဖန်တီးရန် နည်းလမ်းများစွာကို တွေ့ရှိထားသည်။

CVE-2020-27170 အားနည်းချက်သည် BPF verifier တွင် pointer manipulation ကြောင့်ဖြစ်ပြီး ကြားခံနယ်နိမိတ်အပြင်ဘက်ရှိ ဧရိယာကို မှန်းဆထားသော လုပ်ဆောင်ချက်များကို ဝင်ရောက်စေပါသည်။ အားနည်းချက် CVE-2020-27171 သည် pointers များနှင့် အလုပ်လုပ်သောအခါ ကိန်းပြည့်အောက်ပိုင်း အမှားအယွင်းတစ်ခုကြောင့်ဖြစ်ပြီး ကြားခံပြင်ပရှိ ဒေတာများကို မှန်းဆသိရှိနိုင်စေရန် ဦးတည်သည်။ ဤပြဿနာများကို kernel ထုတ်ဝေမှုများ 5.11.8၊ 5.10.25၊ 5.4.107၊ 4.19.182 နှင့် 4.14.227 တို့တွင် ပြုပြင်ထားပြီးဖြစ်ပြီး Linux ဖြန့်ဝေမှုအများစုအတွက် kernel အပ်ဒိတ်များတွင်လည်း ထည့်သွင်းထားပါသည်။ သုတေသီများသည် အခွင့်ထူးမရသေးသောအသုံးပြုသူတစ်ဦးအား kernel memory မှဒေတာထုတ်ယူနိုင်စေမည့် ရှေ့ပြေးပုံစံ exploit ကိုပြင်ဆင်ထားပါသည်။

source: opennet.ru

မှတ်ချက် Add