TIPC ပရိုတိုကောကို အသုံးပြုသည့်အခါ ဖြစ်ပေါ်သည့် Linux kernel အတွင်းရှိ အဝေးထိန်းအားနည်းချက်

TIPC (Transparent Inter-process Communication) ကွန်ရက်ပရိုတိုကော၏ လည်ပတ်မှုကို သေချာစေသည့် Linux kernel module တွင် အားနည်းချက်တစ်ခု (CVE-2022-0435) ကို ဖော်ထုတ်ထားပြီး၊ အထူးဒီဇိုင်းထုတ်ထားသော ကွန်ရက်ကို ပေးပို့ခြင်းဖြင့် kernel အဆင့်တွင် ကုဒ်ကို လုပ်ဆောင်နိုင်စေပါသည်။ packet ပြဿနာသည် tipc.ko kernel မော်ဂျူးကိုတင်ပြီး စနစ်များနှင့်သာ သက်ရောက်မှုရှိပြီး၊ ပုံမှန်အားဖြင့် အစုအဝေးများတွင် အသုံးပြုလေ့ရှိပြီး အထူးမဟုတ်သော Linux ဖြန့်ဝေမှုများတွင် ပုံမှန်အားဖြင့် ဖွင့်မထားသော TIPC စတက်များကိုသာ သက်ရောက်မှုရှိပါသည်။

memcpy() လုပ်ဆောင်ချက်သို့ အပိုစည်းချက်စစ်ဆေးမှုများကို ပေါင်းထည့်သည့် "CONFIG_FORTIFY_SRC=y" မုဒ် (CONFIG_FORTIFY_SRC=y" မုဒ်တွင် kernel ကို တည်ဆောက်သည့်အခါ၊ လုပ်ဆောင်ချက်သည် အရေးပေါ်ရပ်တန့်ခြင်း (kernel ထိတ်လန့်ခြင်း) အတွက် ကန့်သတ်ထားသည်ကို မှတ်သားရပါသည်။ ထပ်လောင်းစစ်ဆေးမှုများမပါဘဲ လုပ်ဆောင်ပြီး stack ကိုကာကွယ်ရန်အသုံးပြုသည့် canary tags များအကြောင်းအချက်အလက်များ ပေါက်ကြားပါက၊ kernel အခွင့်အရေးများဖြင့် အဝေးထိန်းကုဒ်လုပ်ဆောင်မှုအတွက် ပြဿနာကို အသုံးချနိုင်သည်။ ပြဿနာကို ဖော်ထုတ်ခဲ့သော သုတေသီများက ခေါင်းပုံဖြတ်ခြင်းနည်းပညာသည် အသေးအဖွဲဖြစ်ပြီး ဖြန့်ဝေမှုတွင် အားနည်းချက်ကို ကျယ်ကျယ်ပြန့်ပြန့် ဖယ်ရှားပြီးနောက် ထုတ်ဖော်မည်ဟု ဆိုကြသည်။

အားနည်းချက်မှာ packets များကို စီမံဆောင်ရွက်ရာတွင် ဖြစ်ပေါ်လာသည့် stack overflow ဖြစ်ပြီး၊ 64 ထက်ကျော်လွန်သော domain member node အရေအတွက်နှင့် field ၏တန်ဖိုးဖြစ်သည်။ tipc.ko module တွင် node parameters များကို သိမ်းဆည်းရန်၊ fixed array “u32 members[64 ]” ကိုအသုံးပြုသော်လည်း packet တွင်ဖော်ပြထားသောသတ်မှတ်ထားသောအရာကိုလုပ်ဆောင်ခြင်းလုပ်ငန်းစဉ်တွင် 64 ထက်ကြီးသောတန်ဖိုးများကိုနောက်ထပ် memory area တွင်ထိန်းချုပ်ထားသော data များကို overwrite လုပ်ရန်အတွက်အသုံးပြုရန် node နံပါတ်သည် "member_cnt" ၏တန်ဖိုးကိုစစ်ဆေးခြင်းမရှိပါ။ stack ရှိ "dom_bef" ဖွဲ့စည်းပုံသို့။

အားနည်းချက်ဖြစ်စေသော bug ကို 15 ခုနှစ် ဇွန်လ 2016 ရက်နေ့တွင် မိတ်ဆက်ခဲ့ပြီး Linux 4.8 kernel တွင် ထည့်သွင်းခဲ့သည်။ အားနည်းချက်ကို Linux kernel ထုတ်ဝေမှုများ 5.16.9၊ 5.15.23၊ 5.10.100၊ 5.4.179၊ 4.19.229၊ 4.14.266 နှင့် 4.9.301 တို့တွင် ဖြေရှင်းထားပါသည်။ ဖြန့်ဝေမှုအများစု၏ kernels များတွင် ပြဿနာသည် မဖြေရှင်းနိုင်သေးပါ- RHEL၊ Debian၊ Ubuntu၊ SUSE၊ Fedora၊ Gentoo၊ Arch Linux။

TIPC ပရိုတိုကောကို Ericsson မှ မူလက တီထွင်ခဲ့ပြီး အစုအဝေးတစ်ခုအတွင်း အပြန်အလှန် ဆက်သွယ်မှု ဆက်သွယ်မှုများကို စုစည်းရန် ဒီဇိုင်းထုတ်ထားပြီး အစုအဝေးများပေါ်တွင် အဓိကအားဖြင့် အသက်သွင်းထားသည်။ TIPC သည် Ethernet သို့မဟုတ် UDP (network port 6118) ဖြင့် လည်ပတ်နိုင်သည်။ Ethernet ဖြင့်အလုပ်လုပ်သောအခါ၊ port ကို firewall မှမဖုံးလွှမ်းထားပါက၊ UDP ကိုအသုံးပြုသောအခါ၊ local network မှတိုက်ခိုက်မှုကိုလုပ်ဆောင်နိုင်သည်။ တိုက်ခိုက်မှုကို အိမ်ရှင်၏အခွင့်ထူးခံမဟုတ်သော ဒေသခံအသုံးပြုသူတစ်ဦးမှလည်း လုပ်ဆောင်နိုင်သည်။ TIPC ကို အသက်သွင်းရန်၊ သင်သည် tipc.ko kernel module ကို ဒေါင်းလုဒ်လုပ်ပြီး netlink သို့မဟုတ် tipc utility ကို အသုံးပြု၍ ချိတ်ဆက်မှုအား ကွန်ရက်အင်တာဖေ့စ်နှင့် ချိတ်ဆက်မှုအား စီစဉ်သတ်မှတ်ရန် လိုအပ်သည်။

source: opennet.ru

မှတ်ချက် Add