nf_tables၊ watch_queue နှင့် IPsec တို့တွင် အသုံးချနိုင်သော အားနည်းချက်များကို Linux kernel တွင် ရှာဖွေတွေ့ရှိခဲ့သည်

ဒေသခံအသုံးပြုသူတစ်ဦးသည် စနစ်အတွင်း ၎င်းတို့၏အခွင့်အရေးများကို တိုးမြှင့်ခွင့်ပြုသည့် Linux kernel တွင် အန္တရာယ်ရှိသော အားနည်းချက်များစွာကို ဖော်ထုတ်ထားသည်။ ထည့်သွင်းစဉ်းစားထားသည့် ပြဿနာအားလုံးအတွက် လုပ်ဆောင်ခြင်း၏ ရှေ့ပြေးပုံစံများကို ပြင်ဆင်ထားပါသည်။

  • watch_queue ဖြစ်ရပ်ခြေရာခံစနစ်ခွဲရှိ အားနည်းချက်တစ်ခု (CVE-2022-0995) သည် ဒေတာများကို kernel မမ်မိုရီရှိ ပြင်ပနယ်နိမိတ်အတွင်းရှိ ကြားခံတစ်ခုသို့ ရေးသားခွင့်ပြုသည်။ တိုက်ခိုက်မှုကို အခွင့်ထူးမရသေးသော အသုံးပြုသူတိုင်းက လုပ်ဆောင်နိုင်ပြီး ၎င်းတို့၏ ကုဒ်ကို kernel အခွင့်အရေးများဖြင့် လုပ်ဆောင်နေပါသည်။ အားနည်းချက်သည် watch_queue_set_size() လုပ်ဆောင်ချက်တွင် ရှိနေပြီး ၎င်းတို့အတွက် မန်မိုရီကို ခွဲဝေမပေးထားသော်လည်း၊ စာရင်းတစ်ခုရှိ ညွှန်အားလုံးကို ရှင်းလင်းရန် ကြိုးပမ်းမှုနှင့် ဆက်စပ်နေသည်။ Linux ဖြန့်ဖြူးမှုအများစုတွင်အသုံးပြုသည့် "CONFIG_WATCH_QUEUE=y" ရွေးချယ်မှုဖြင့် kernel ကိုတည်ဆောက်သည့်အခါ ပြဿနာဖြစ်ပေါ်ပါသည်။

    အားနည်းချက်ကို မတ်လ 11 ရက်နေ့တွင် ထည့်သွင်းထားသော kernel ပြောင်းလဲမှုတွင် ဖြေရှင်းခဲ့သည်။ ဤစာမျက်နှာများတွင် ဖြန့်ဝေမှုများတွင် ပက်ကေ့ဂျ်အပ်ဒိတ်များထုတ်ဝေမှုများကို သင်လိုက်နာနိုင်သည်- Debian၊ SUSE၊ Ubuntu၊ RHEL၊ Fedora၊ Gentoo၊ Arch Linux။ exploit ရှေ့ပြေးပုံစံကို လူသိရှင်ကြား ရရှိထားပြီးဖြစ်ပြီး kernel 21.10-5.13.0 ဖြင့် Ubuntu 37 တွင် run သောအခါတွင် root access ကို ရရှိစေမည်ဖြစ်သည်။

    nf_tables၊ watch_queue နှင့် IPsec တို့တွင် အသုံးချနိုင်သော အားနည်းချက်များကို Linux kernel တွင် ရှာဖွေတွေ့ရှိခဲ့သည်

  • IPsec အတွက် ESP အသွင်ပြောင်းခြင်း (Encapsulating Security Payload) ကို အကောင်အထည်ဖော်ခြင်းဖြင့် esp2022 နှင့် esp27666 kernel module များရှိ အားနည်းချက် (CVE-4-6)၊ IPsec၊ အားနည်းချက်သည် သာမန်အခွင့်ထူးများရှိသည့် ဒေသခံအသုံးပြုသူတစ်ဦးအား kernel memory တွင် အရာဝတ္ထုများကို ထပ်ရေးစေပြီး ၎င်းတို့၏အခွင့်အရေးများကို စနစ်တွင် တိုးမြှင့်ခွင့်ပြုသည်။ အများဆုံး မက်ဆေ့ချ်အရွယ်အစားသည် skb_page_frag_refill ဖွဲ့စည်းတည်ဆောက်ပုံအတွက် ခွဲဝေပေးထားသည့် အမြင့်ဆုံးမှတ်ဉာဏ်အရွယ်အစားထက် ကျော်လွန်သွားနိုင်သောကြောင့် ပြဿနာသည် ခွဲဝေသတ်မှတ်ထားသော မှတ်ဉာဏ်အရွယ်အစားနှင့် အမှန်တကယ်ရရှိသည့်ဒေတာအကြား ပြန်လည်ပေါင်းစည်းမှုမရှိခြင်းကြောင့် ဖြစ်ပေါ်လာခြင်းဖြစ်သည်။

    အားနည်းချက်ကို မတ်လ 7 ရက်နေ့တွင် kernel တွင် ပြင်ဆင်ခဲ့သည် (5.17၊ 5.16.15 စသည်ဖြင့်) ကို ပြင်ဆင်ခဲ့သည်။ ဤစာမျက်နှာများတွင် ဖြန့်ဝေမှုများတွင် ပက်ကေ့ဂျ်အပ်ဒိတ်များထုတ်ဝေမှုများကို သင်လိုက်နာနိုင်သည်- Debian၊ SUSE၊ Ubuntu၊ RHEL၊ Fedora၊ Gentoo၊ Arch Linux။ ပုံမှန်အသုံးပြုသူတစ်ဦးအား ပုံသေဖွဲ့စည်းပုံတွင် Ubuntu Desktop 21.10 သို့ root access ရရှိစေမည့် exploit ၏ ရှေ့ပြေးပုံစံကို GitHub တွင် တင်ထားပြီးဖြစ်သည်။ အသေးအဖွဲပြောင်းလဲမှုများဖြင့် exploit သည် Fedora နှင့် Debian တို့တွင်လည်း လုပ်ဆောင်နိုင်မည်ဟု အခိုင်အမာဆိုထားသည်။ exploit ကို pwn2own 2022 ပြိုင်ပွဲအတွက် မူလက ပြင်ဆင်ထားသော်လည်း kernel developer များသည် ၎င်းနှင့်ဆက်စပ်နေသည့် bug တစ်ခုကို ဖော်ထုတ်ပြီး ပြုပြင်ပေးသောကြောင့် အားနည်းချက်အသေးစိတ်များကို ထုတ်ဖော်ရန် ဆုံးဖြတ်လိုက်ခြင်းဖြစ်ပါသည်။

  • nftables packet filter ၏လည်ပတ်မှုကိုသေချာစေသည့် nf_tables module ရှိ netfilter subsystem ရှိ အားနည်းချက်နှစ်ခု (CVE-2022-1015၊ CVE-2022-1016)။ ပထမပြဿနာသည် ဒေသဆိုင်ရာအခွင့်ထူးမခံရသေးသောအသုံးပြုသူတစ်ဦးအား အစုအစည်းပေါ်ရှိ ခွဲဝေချထားပေးသည့်ကြားခံတစ်ခုထံ စာရေးရန် ခွင့်ပြုထားသည်။ nftables စည်းမျဉ်းများကို ဝင်ရောက်အသုံးပြုသူမှ သတ်မှတ်ထားသော အညွှန်းများ၏ စစ်ဆေးသည့်အဆင့်အတွင်း လုပ်ဆောင်သည့် nftables စကားရပ်များကို စီမံဆောင်ရွက်သည့်အခါတွင် ပြည့်လျှံမှု ဖြစ်ပေါ်သည်။

    အချို့သော optimizations ကိုဖွင့်သောအခါတွင် developer များသည် "enum nft_registers reg" ၏တန်ဖိုးသည် single byte ဖြစ်သည်ဟု အဓိပ္ပာယ်ဖွင့်ဆိုခြင်းကြောင့် အားနည်းချက်သည် ဖြစ်ပေါ်လာသည့်အချက်မှာ၊ compiler သည် C89 သတ်မှတ်ချက်အရ ၎င်းအတွက် 32-bit တန်ဖိုးကို အသုံးပြုနိုင်သည်။ . ဤအင်္ဂါရပ်ကြောင့်၊ မမ်မိုရီကိုစစ်ဆေးခြင်းနှင့် ခွဲဝေသတ်မှတ်ရာတွင် အသုံးပြုသည့်အရွယ်အစားသည် တည်ဆောက်ပုံရှိဒေတာ၏အမှန်တကယ်အရွယ်အစားနှင့် ကိုက်ညီမှုမရှိပါ၊ ၎င်းသည် stack ရှိ pointers များနှင့်ထပ်နေသောဖွဲ့စည်းပုံ၏အမြီးကိုဖြစ်ပေါ်စေသည်။

    kernel အဆင့်တွင် ကုဒ်ကို execute လုပ်ရန် ပြဿနာကို အသုံးချနိုင်သော်လည်း အောင်မြင်သော တိုက်ခိုက်မှုသည် CLONE_NEWUSER သို့မဟုတ် CLONE_NEWNET လုပ်ပိုင်ခွင့်များပါရှိသော သီးခြားကွန်ရက် namespace တွင် ရရှိနိုင်သည့် nftables များသို့ ဝင်ရောက်ခွင့် လိုအပ်သည် (ဥပမာ၊ သီးခြားကွန်တိန်နာတစ်ခု လုပ်ဆောင်နိုင်လျှင်)။ အားနည်းချက်သည် compiler မှအသုံးပြုသော ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်မှုများနှင့်လည်း နီးကပ်စွာဆက်စပ်နေပါသည်။ ဥပမာအားဖြင့် “CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y” မုဒ်တွင်တည်ဆောက်သောအခါတွင်ဖွင့်ထားခြင်းဖြစ်သည်။ Linux kernel 5.12 မှ စတင်၍ အားနည်းချက်ကို အသုံးချနိုင်သည်။

    netfilter ၏ ဒုတိယအားနည်းချက်မှာ nft_do_chain handler ရှိ လွတ်နေပြီဖြစ်သော memory area (use-after-free) ကိုဝင်ရောက်ခြင်းဖြင့် ဖြစ်ပေါ်လာပြီး nftables expressions များဖြင့် ကိုင်တွယ်အသုံးပြု၍ ဖတ်ရှုနိုင်သည့် kernel memory ၏ uninitialized area များပေါက်ကြားသွားစေနိုင်သည်၊ ဥပမာအားဖြင့်၊ အခြားသော အားနည်းချက်များအတွက် ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာ အသုံးချမှုများအတွင်း ညွှန်မှတ်လိပ်စာများကို ဆုံးဖြတ်ရန်။ Linux kernel 5.13 မှစတင်၍ အားနည်းချက်ကို အသုံးချနိုင်သည်။

    အားနည်းချက်များကို ယနေ့ kernel ဖာထေးမှုများ 5.17.1၊ 5.16.18၊ 5.15.32၊ 5.10.109၊ 5.4.188၊ 4.19.237၊ 4.14.274 နှင့် 4.9.309 တို့တွင် ဖြေရှင်းထားပါသည်။ ဤစာမျက်နှာများတွင် ဖြန့်ဝေမှုများတွင် ပက်ကေ့ဂျ်အပ်ဒိတ်များထုတ်ဝေမှုများကို သင်လိုက်နာနိုင်သည်- Debian၊ SUSE၊ Ubuntu၊ RHEL၊ Fedora၊ Gentoo၊ Arch Linux။ ပြဿနာများကို ဖော်ထုတ်ပေးသော သုတေသီသည် ဖြန့်ဝေမှုများသည် kernel ပက်ကေ့ဂျ်များ အပ်ဒိတ်များကို ထုတ်ပြန်ပြီးနောက် ရက်အနည်းငယ်အတွင်း ထုတ်ဝေရန် စီစဉ်ထားသည့် အားနည်းချက်နှစ်ခုလုံးအတွက် အလုပ်လုပ်ဆောင်မှုဆိုင်ရာ အသုံးချမှုများ ပြင်ဆင်မှုကို ကြေညာခဲ့သည်။

source: opennet.ru

မှတ်ချက် Add