kernel-level code execution ကို ခွင့်ပြုသည့် eBPF subsystem ရှိ အားနည်းချက်များ Linux

kernel အတွင်းရှိ handler များကို execute လုပ်ခွင့်ပြုသည့် eBPF subsystem တွင် အားနည်းချက်အသစ်နှစ်ခုကို ရှာဖွေတွေ့ရှိခဲ့သည်။ Linux JIT ပါရှိသော အထူး virtual machine တစ်ခုတွင်။ အားနည်းချက်နှစ်ခုစလုံးသည် သီးခြား eBPF virtual machine ပြင်ပတွင် kernel privileges များဖြင့် code execute လုပ်ခွင့်ပြုသည်။ ပြဿနာများနှင့်ပတ်သက်သည့် အချက်အလက်များကို ယခုနှစ်တွင် တိုက်ခိုက်မှုသုံးခုကို ပြသခဲ့သော Pwn2Own ပြိုင်ပွဲကို ဦးဆောင်သည့် Zero Day Initiative အဖွဲ့မှ ထုတ်ပြန်ခဲ့သည်။ Ubuntu Linuxယခင်က မသိရှိခဲ့သော အားနည်းချက်များကို အသုံးချခဲ့သည် (eBPF ရှိ အားနည်းချက်များသည် ဤတိုက်ခိုက်မှုများနှင့် ဆက်စပ်မှုရှိမရှိကို မဖော်ပြထားပါ)။

  • CVE-2021-3490 - eBPF ALU32 တွင် bitwise AND, OR, နှင့် XOR လုပ်ဆောင်ချက်များကို လုပ်ဆောင်သည့်အခါ အားနည်းချက်မှာ 32-bit အပြင်-ဘောင်များ စစ်ဆေးခြင်း မရှိခြင်းကြောင့် ဖြစ်ပေါ်လာခြင်းဖြစ်သည်။ တိုက်ခိုက်သူသည် ခွဲဝေပေးထားသည့်ကြားခံ၏ဘောင်အပြင်ဘက်တွင် ဒေတာများကို ဖတ်ရန်နှင့် ရေးရန် ဤအမှားကို အခွင့်ကောင်းယူနိုင်သည်။ XOR လုပ်ဆောင်ချက်များနှင့် ပြဿနာသည် kernel ဗားရှင်း 5.7-rc1 မှ စတင်ကာ AND နှင့် OR - 5.10-rc1 မှ စတင်သည်။
  • CVE-2021-3489 - ကွင်းဆက်ကြားခံကို အကောင်အထည်ဖော်ရာတွင် အမှားအယွင်းတစ်ခုကြောင့် ဖြစ်ရခြင်းဖြစ်ပြီး bpf_ringbuf_reserve လုပ်ဆောင်ချက်သည် ခွဲဝေချထားပေးသော မမ်မိုရီဧရိယာ၏ အရွယ်အစားသည် အမှန်တကယ်အရွယ်အစားထက် လျော့နည်းနိုင်ကြောင်း ဖြစ်နိုင်ခြေကို စစ်ဆေးခြင်းမရှိသောကြောင့်ဖြစ်သည်။ ringbuf ၏ 5.8-rc1 ထွက်ရှိကတည်းက ပြဿနာပေါ်လာသည်။

ဖြန့်ဖြူးမှုများတွင် အားနည်းချက်ပြင်ဆင်မှုများ၏ အခြေအနေကို ဤစာမျက်နှာများတွင် ခြေရာခံနိုင်သည်- Ubuntu, Debian, RHEL, Fedora, SUSE, Arch)။ ပြင်ဆင်မှုများကို patch များအဖြစ်လည်း ရရှိနိုင်ပါသည် (CVE-2021-3489, CVE-2021-3490)။ အသုံးချနိုင်မှုသည် eBPF system call ကို အသုံးပြုခွင့်ရှိသော အသုံးပြုသူပေါ်တွင် မူတည်ပါသည်။ ဥပမာအားဖြင့်၊ RHEL ရှိ default configuration တွင်၊ အားနည်းချက်ကို အသုံးချရန်အတွက် အသုံးပြုသူတွင် CAP_SYS_ADMIN အခွင့်အရေးများ ရှိရန် လိုအပ်သည်။

kernel ရှိ နောက်ထပ်အားနည်းချက်တစ်ခုကို သီးခြားမှတ်သားထားသင့်သည်။ Linux — CVE-2021-32606၊ ၎င်းသည် local user အား ၎င်းတို့၏ privileges များကို root သို့ escalate လုပ်ခွင့်ပြုသည်။ ပြဿနာသည် kernel တွင်စတင်ပေါ်လာသည်။ Linux 5.11 ဖြစ်ပြီး CAN ISOTP protocol အကောင်အထည်ဖော်မှုတွင် race condition ကြောင့် ဖြစ်ပေါ်လာပြီး၊ CAN_ISOTP_SF_BROADCAST flag ကို လုပ်ဆောင်သည့်အခါ isotp_setsockopt() function တွင် သင့်လျော်သော locks များ သတ်မှတ်ထားခြင်းမရှိသောကြောင့် socket binding parameters များကို ပြောင်းလဲနိုင်စေပါသည်။

ISOTP socket ကို ပိတ်ပြီးနောက်၊ လက်ခံသူ socket နှင့် ချိတ်ဆက်မှုသည် အကျိုးသက်ရောက်မှုရှိနေဆဲဖြစ်ပြီး ၎င်းတို့နှင့် ဆက်စပ်နေသော မမ်မိုရီကို လွတ်သွားပြီးနောက် ၎င်းတို့နှင့် ဆက်စပ်နေသော မမ်မိုရီကို ဖယ်ရှားပြီးနောက် socket နှင့် ဆက်စပ်သော ဖွဲ့စည်းပုံများကို ဆက်လက်အသုံးပြုနိုင်ပါသည် ( isotp_sock တည်ဆောက်ပုံသို့ ခေါ်ဆိုမှုကြောင့် အသုံးပြုပြီးနောက် အခမဲ့ အသုံးပြုခြင်း isotp_rcv() ဟုခေါ်သောအခါ) လွတ်မြောက်ပြီးဖြစ်သည်။ ဒေတာခြယ်လှယ်ခြင်းမှတစ်ဆင့်၊ သင်သည် ညွှန်ပြချက်ကို sk_error_report() လုပ်ဆောင်ချက်သို့ အစားထိုးနိုင်ပြီး kernel အဆင့်တွင် သင့်ကုဒ်ကို လုပ်ဆောင်နိုင်သည်။

source: opennet.ru

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster