သင့်အခွင့်အရေးများကို တိုးမြင့်ခွင့်ပြုသည့် Linux kernel ၏ iSCSI စနစ်ခွဲရှိ အားနည်းချက်

အားနည်းချက်တစ်ခု (CVE-2021-27365) ကို Linux kernel ၏ iSCSI စနစ်ခွဲကုဒ်တွင် ရှာဖွေတွေ့ရှိခဲ့ပြီး၊ ၎င်းသည် အခွင့်ထူးမရသေးသော ဒေသခံအသုံးပြုသူတစ်ဦးအား kernel အဆင့်တွင် ကုဒ်ကိုလုပ်ဆောင်ရန်နှင့် စနစ်အတွင်းရှိ root အခွင့်ထူးများကို ရရှိစေသည်။ exploit ၏ လုပ်ဆောင်နေသော ရှေ့ပြေးပုံစံကို စမ်းသပ်ရန်အတွက် ရနိုင်ပါသည်။ အားနည်းချက်ကို Linux kernel အပ်ဒိတ် 5.11.4၊ 5.10.21၊ 5.4.103၊ 4.19.179၊ 4.14.224၊ 4.9.260 နှင့် 4.4.260 တို့တွင် ကိုင်တွယ်ဖြေရှင်းထားပါသည်။ Kernel ပက်ကေ့ဂျ်အပ်ဒိတ်များကို Debian၊ Ubuntu၊ SUSE/openSUSE၊ Arch Linux နှင့် Fedora ဖြန့်ဝေမှုများတွင် ရနိုင်ပါသည်။ RHEL အတွက် ပြင်ဆင်မှုများ မထုတ်ပြန်သေးပါ။

ပြဿနာသည် iSCSI စနစ်ခွဲကို ဖွံ့ဖြိုးတိုးတက်မှုအတွင်း 2006 ခုနှစ်တွင် ပြန်လည်မိတ်ဆက်ခဲ့သော libiscsi module မှ iscsi_host_get_param() လုပ်ဆောင်ချက်တွင် အမှားအယွင်းတစ်ခုကြောင့် ဖြစ်ပေါ်လာခြင်းဖြစ်သည်။ သင့်လျော်သောအရွယ်အစားစစ်ဆေးမှုများမရှိခြင်းကြောင့်၊ အချို့သော iSCSI string attribute များဖြစ်သည့် hostname သို့မဟုတ် username သည် PAGE_SIZE တန်ဖိုး (4 KB) ထက်ကျော်လွန်နိုင်ပါသည်။ iSCSI ရည်ညွှန်းချက်များကို PAGE_SIZE ထက်ကြီးသောတန်ဖိုးများအဖြစ် သတ်မှတ်သည့် Netlink မက်ဆေ့ဂျ်များ ပေးပို့ခြင်းမပြုသော အသုံးပြုသူတစ်ဦးမှ အားနည်းချက်ကို အသုံးချနိုင်သည်။ ဤ attribute များကို sysfs သို့မဟုတ် seqfs မှတဆင့်ဖတ်သောအခါ၊ အရွယ်အစား PAGE_SIZE ရှိသော ကြားခံသို့ကူးယူရန် sprintf လုပ်ဆောင်ချက်သို့ ကုဒ်ကို ခေါ်သည်။

ဖြန့်ဝေမှုများတွင် အားနည်းချက်ကို အသုံးချခြင်းသည် NETLINK_ISCSI ဆော့ဖ်ဝဲကို ဖန်တီးရန် ကြိုးစားနေချိန်တွင် scsi_transport_iscsi kernel module ၏ အလိုအလျောက်တင်ခြင်းအတွက် ပံ့ပိုးမှုပေါ်တွင် မူတည်ပါသည်။ ဤ module ကို အလိုအလျောက် တင်ဆောင်သည့် ဖြန့်ဝေမှုများတွင်၊ iSCSI လုပ်ဆောင်ချက်ကို အသုံးပြုမှု မခွဲခြားဘဲ တိုက်ခိုက်မှုကို လုပ်ဆောင်နိုင်သည်။ တစ်ချိန်တည်းမှာပင်၊ exploit ကိုအောင်မြင်စွာအသုံးပြုရန်၊ အနည်းဆုံး iSCSI သယ်ယူပို့ဆောင်ရေးမှတ်ပုံတင်ခြင်းကို ထပ်လောင်းလိုအပ်ပါသည်။ တစ်ဖန်၊ သယ်ယူပို့ဆောင်ရေးတစ်ခု မှတ်ပုံတင်ရန်၊ သင်သည် NETLINK_RDMA socket တစ်ခုကို ဖန်တီးရန် ကြိုးစားသောအခါတွင် အလိုအလျောက် တင်ပေးသည့် ib_iser kernel module ကို အသုံးပြုနိုင်သည်။

exploit အပလီကေးရှင်းအတွက် လိုအပ်သော မော်ဂျူးများကို အလိုအလျောက်တင်ခြင်းအား CentOS 8၊ RHEL 8 နှင့် Fedora တွင် ပံ့ပိုးပေးထားပြီး၊ အချို့သော လူကြိုက်များသော ပက်ကေ့ဂျ်များအတွက် မှီခိုမှုဖြစ်သည့် စနစ်ပေါ်ရှိ rdma-core ပက်ကေ့ဂျ်ကို ထည့်သွင်းသည့်အခါ၊ workstations များအတွက် ပုံသေသတ်မှတ်မှုများ၊ ဆာဗာစနစ်များဖြင့် ထည့်သွင်းထားသည်။ GUI နှင့် host ပတ်ဝန်းကျင်များကို virtualization။ သို့သော်၊ ကွန်ဆိုးမုဒ်တွင်သာအလုပ်လုပ်ပြီး အနည်းငယ်မျှသောတပ်ဆင်ပုံထည့်သွင်းသည့်အခါတွင်သာ ဆာဗာစည်းဝေးပွဲကိုအသုံးပြုသည့်အခါ rdma-core ကို ထည့်သွင်းမထားပါ။ ဥပမာအားဖြင့်၊ ပက်ကေ့ဂျ်သည် Fedora 31 Workstation ၏ အခြေခံဖြန့်ဖြူးမှုတွင် ပါဝင်သော်လည်း Fedora 31 ဆာဗာတွင် မပါဝင်ပါ။ RDMA ဟာ့ဒ်ဝဲရှိမှသာ တိုက်ခိုက်မှုအတွက် လိုအပ်သော kernel modules များကို rdma-core ပက်ကေ့ချ်တွင် တင်ထားသောကြောင့် Debian နှင့် Ubuntu တို့သည် ပြဿနာကို ခံနိုင်ရည်နည်းပါသည်။

သင့်အခွင့်အရေးများကို တိုးမြင့်ခွင့်ပြုသည့် Linux kernel ၏ iSCSI စနစ်ခွဲရှိ အားနည်းချက်

လုံခြုံရေးဖြေရှင်းချက်အနေဖြင့်၊ သင်သည် libiscsi module ၏ အလိုအလျောက်တင်ခြင်းကို ပိတ်နိုင်သည်- "install libiscsi /bin/true" >> /etc/modprobe.d/disable-libiscsi.conf

ထို့အပြင်၊ kernel မှ ဒေတာယိုစိမ့်မှုကို ဦးတည်နိုင်သည့် အန္တရာယ်နည်းပါးသော အားနည်းချက်နှစ်ခုကို iSCSI စနစ်ခွဲတွင် ပြင်ဆင်ပြီးဖြစ်သည်- CVE-2021-27363 (iSCSI transport descriptor information leakage sysfs) နှင့် CVE-2021-27364 (ဘောင်အပြင်ဘက်ကြားခံများ ဖတ်)။ အဆိုပါအားနည်းချက်များကို iSCSI စနစ်ခွဲစနစ်နှင့် netlink socket မှတဆင့် ဆက်သွယ်ရန်အတွက် လိုအပ်သောအခွင့်ထူးများမပါဘဲ အသုံးပြုနိုင်ပါသည်။ ဥပမာအားဖြင့်၊ အခွင့်ထူးမရသေးသောအသုံးပြုသူတစ်ဦးသည် iSCSI သို့ချိတ်ဆက်နိုင်ပြီး စက်ရှင်ကိုအဆုံးသတ်ရန် "စက်ရှင်တစ်ခုကိုအဆုံးသတ်ရန်" အမိန့်ကိုထုတ်ပေးနိုင်သည်။

source: opennet.ru

မှတ်ချက် Add