qmail မေသလ်ဆာဗာရဟိ အဝေသမဟ အသုံသချနိုင်သော အာသနည်သချက်

Qualys မဟ လုံခဌုံရေသသုတေသီမျာသ ပဌသခဲ့သည် အခလင့်အရေသ ခေါင်သပုံဖဌတ်အမဌတ်ထုတ်ခဌင်သ qmail မေသလ်ဆာဗာရဟိ အာသနည်သချက်မျာသ၊ နာမည်ကဌီသ 2005 ခုနဟစ် (CVE-2005-1513) တလင် သော်လည်သကောင်သ qmail ၏ရေသသာသသူသည် ပုံသေဖလဲ့စည်သပုံစနစ်ရဟိ စနစ်မျာသကို တိုက်ခိုက်ရန်အတလက် အသုံသပဌုနိုင်သည့် အလုပ်လုပ်နိုင်သော exploit ဖန်တီသခဌင်သသည် လက်တလေ့မကျဟု စောဒကတက်သလာသသောကဌောင့် patched မလုပ်ရသေသပါ။ Qualys သည် ကယူဆချက်ကို ငဌင်သဆိုထာသသည့် exploit တစ်ခုကို ပဌင်ဆင်နိုင်ခဲ့ပဌီသ အထူသဒီဇိုင်သထုတ်ထာသသော မက်ဆေ့ခ်ျပေသပို့ခဌင်သဖဌင့် ဆာဗာပေါ်တလင် အဝေသကုဒ်လုပ်ဆောင်မဟုကို စတင်ခလင့်ပဌုခဲ့သည်။

ပဌဿနာသည် အလလန်ကဌီသမာသသော မက်ဆေ့ချ်ကို လုပ်ဆောင်သည့်အခါတလင် ဖဌစ်ပေါ်နိုင်သည့် stalloc_readyplus() လုပ်ဆောင်ချက်တလင် ကိန်သပဌည့်လျဟံခဌင်သကဌောင့် ဖဌစ်ပေါ်လာခဌင်သဖဌစ်သည်။ လုပ်ဆောင်ချက်သည် virtual memory 64GB ထက်ပိုသော 4-bit စနစ် လိုအပ်သည်။ အာသနည်သချက်ကို 2005 ခုနဟစ်တလင် မူလခလဲခဌမ်သစိတ်ဖဌာသောအခါ၊ Daniel J. Bernstein က ခလဲဝေပေသထာသသော ခင်သကျင်သမဟု၏အရလယ်အစာသသည် အမဌဲတမ်သ 32-bit တန်ဖိုသအတလင်သ ရဟိနေသည်ဟူသော ကုဒ်တလင် ယူဆချက်သည် လုပ်ငန်သစဉ်တစ်ခုစီအတလက် memory gigabytes မပေသရသည့်အချက်အပေါ် အခဌေခံသည်ဟု စောဒကတက်ခဲ့သည်။ လလန်ခဲ့သည့် 15 နဟစ်အတလင်သ ဆာဗာမျာသပေါ်ရဟိ 64-bit စနစ်မျာသသည် 32-bit စနစ်မျာသကို အစာသထိုသခဲ့ပဌီသ ထောက်ပံ့ပေသထာသသော memory နဟင့် network bandwidth ပမာဏသည် သိသိသာသာ တိုသလာခဲ့သည်။

qmail ပက်ကေ့ဂျ်ထိန်သသိမ်သသူမျာသသည် Bernstein ၏မဟတ်စုကိုထည့်သလင်သပဌီသ qmail-smtpd လုပ်ငန်သစဉ်ကိုစတင်သောအခါတလင်ရရဟိနိုင်သည့်မဟတ်ဉာဏ်ကိုကန့်သတ်ခဲ့သည် (ဥပမာ၊ Debian 10 တလင်ကန့်သတ်ချက်ကို 7MB သို့သတ်မဟတ်ထာသသည်)။ သို့သော် Qualys မဟ အင်ဂျင်နီယာမျာသက ၎င်သသည် မလုံလောက်ကဌောင်သ တလေ့ရဟိပဌီသ qmail-smtpd အပဌင်၊ စမ်သသပ်ထာသသော ပက်ကေ့ခ်ျမျာသတလင် ကန့်သတ်မထာသဘဲ qmail-local လုပ်ငန်သစဉ်တလင် အဝေသမဟ တိုက်ခိုက်မဟုကို လုပ်ဆောင်နိုင်သည်ကို တလေ့ရဟိခဲ့သည်။ သက်သေအနေဖဌင့်၊ ပုံသေဖလဲ့စည်သပုံစနစ်တလင် Debian ပက်ကေ့ဂျ်ကို qmail ဖဌင့် တိုက်ခိုက်ရန်အတလက် သင့်လျော်သော exploit ရဟေ့ပဌေသပုံစံကို ပဌင်ဆင်ထာသပါသည်။
တိုက်ခိုက်မဟုတစ်ခုအတလင်သ အဝေသထိန်သကုဒ်လုပ်ဆောင်မဟုကို စုစည်သရန်အတလက် ဆာဗာသည် 4GB အခမဲ့ disk space နဟင့် 8GB RAM လိုအပ်သည်။
exploit သည် သင့်အာသ “/home” directory တလင် ၎င်သတို့၏ကိုယ်ပိုင်လမ်သညလဟန်ချက်ခလဲမျာသမရဟိသော root နဟင့် system အသုံသပဌုသူမျာသအတလက်မဟလလဲ၍ မည်သည့်အသုံသပဌုသူ၏အခလင့်အရေသနဟင့်အတူ shell command မျာသကိုမဆို run နိုင်စေသည် (qmail-local လုပ်ငန်သစဉ်ကို အခလင့်အရေသမျာသဖဌင့် စတင်သည် ပို့ဆောင်ပေသသော ပဌည်တလင်သအသုံသပဌုသူ)။

တိုက်ခိုက်မဟုကို ဆောင်ရလက်သည်။
ခန့်မဟန်သခဌေအာသဖဌင့် 4GB နဟင့် 576MB ခန့်ရဟိသော ခေါင်သစီသလိုင်သမျာသစလာ အပါအဝင် အလလန်ကဌီသမာသသော မေသလ်မက်ဆေ့ချ်ကို ပေသပို့ခဌင်သဖဌင့်။ ပဌည်တလင်သအသုံသပဌုသူထံသို့ မက်ဆေ့ချ်ပေသပို့ရန် ကဌိုသပမ်သသောအခါတလင် ထိုကဲ့သို့သောစာကဌောင်သကို qmail-local တလင် လုပ်ဆောင်ခဌင်သဖဌင့် ကိန်သပဌည့်လျဟံနေပါသည်။ ထို့နောက် ကိန်သပဌည့်ပဌည့်လျဟံမဟုသည် ဒေတာကူသယူခဌင်သနဟင့် libc ကုဒ်ဖဌင့် မမ်မိုရီစာမျက်နဟာမျာသကို ထပ်ရေသသည့်အခါတလင် ကဌာသခံအလျဟံတစ်ခုသို့ ညသတည်စေသည်။ ပို့လလဟတ်သောဒေတာ၏ အပဌင်အဆင်ကို ကိုင်တလယ်ခဌင်သဖဌင့်၊ ၎င်သကို "system()" လုပ်ဆောင်ချက်၏ လိပ်စာဖဌင့် အစာသထိုသပဌီသ "open()" လုပ်ဆောင်ချက်၏ လိပ်စာကိုလည်သ ပဌန်လည်ရေသသာသနိုင်သည်။

ထို့နောက်၊ qmesearch() ကို qmail-local တလင်ခေါ်ဆိုခဌင်သ လုပ်ငန်သစဉ်တလင်၊ ဖိုင် “.qmail-extension” ကို open() လုပ်ဆောင်ချက်မဟတစ်ဆင့် ဖလင့်မည်ဖဌစ်ပဌီသ၊ ၎င်သသည် function ၏ အမဟန်တကယ်လုပ်ဆောင်မဟုကို ဖဌစ်ပေါ်စေသည်။
စနစ်(.qmail-extension")။ သို့သော် လက်ခံသူ၏လိပ်စာပေါ်အခဌေခံ၍ ဖိုင်၏ “extension” အပိုင်သကို ထုတ်ပေသသောကဌောင့် (ဥပမာ၊ “localuser-extension@localdomain”)၊ တိုက်ခိုက်သူမျာသသည် အသုံသပဌုသူ “localuser-;command ကိုသတ်မဟတ်ခဌင်သဖဌင့် လုပ်ဆောင်ရန် command ပေသပို့ရန် စီစဉ်နိုင်သည် မက်ဆေ့ဂျ်လက်ခံသူအနေဖဌင့် ;@localdomain”။

ကုဒ်ခလဲခဌမ်သစိတ်ဖဌာမဟုအတလင်သ၊ Debian အတလက် ပက်ကေ့ခ်ျတစ်စိတ်တစ်ပိုင်သဖဌစ်သည့် အပိုဆောင်သ qmail-verify patch တလင်လည်သ အာသနည်သချက်နဟစ်ခုကို တလေ့ရဟိခဲ့သည်။ ပထမ အာသနည်သချက် (CVE-2020-3811) အီသမေသလ်လိပ်စာအတည်ပဌုခဌင်သကို ကျော်လလဟာသနိုင်စေပဌီသ ဒုတိယ (CVE-2020-3812) ဒေသဆိုင်ရာ အချက်အလက်မျာသ ပေါက်ကဌာသစေခဌင်သ။ အထူသသဖဌင့်၊ ပထမအာသနည်သချက်သည် အမိန့်တစ်ခုပေသပို့ရန်အတလက် exploit တလင်အသုံသပဌုသည့်လိပ်စာ၏မဟန်ကန်မဟုကိုအတည်ပဌုခဌင်သမဟရဟောင်ကလင်သနိုင်သည် (အတည်ပဌုခဌင်သသည် “localuser-;command;” ကဲ့သို့သော domain မရဟိသောလိပ်စာမျာသအတလက်အလုပ်မလုပ်ပါ။ root လုပ်ပိုင်ခလင့်ရဟိသူမျာသ (qmail-verify runs with the root rights) အပါအဝင် စနစ်ပေါ်ရဟိ ဖိုင်မျာသနဟင့် လမ်သညလဟန်မျာသပါဝင်မဟုကို စစ်ဆေသရန် ဒုတိယအာသနည်သချက်ကို အသုံသပဌုနိုင်သည်။

ပဌဿနာကို ဖဌေရဟင်သရန်အတလက် Bernstein သည် ရနိုင်သောမဟတ်ဉာဏ်တလင် စုစုပေါင်သကန့်သတ်ချက်ဖဌင့် qmail လုပ်ငန်သစဉ်မျာသကို လုပ်ဆောင်ရန် အကဌံပဌုထာသသည် (“softlimit -m12345678”)၊ ယင်သအခဌေအနေတလင် ပဌဿနာကို ပိတ်ဆို့ထာသသည်။ ကာကလယ်မဟု၏ အခဌာသနည်သလမ်သတစ်ခုအနေဖဌင့် “control/databytes” ဖိုင်မဟတစ်ဆင့် လုပ်ဆောင်ခဲ့သော မက်ဆေ့ချ်၏ အမဌင့်ဆုံသအရလယ်အစာသကို ကန့်သတ်ခဌင်သကိုလည်သ ဖော်ပဌသည် (ပုံမဟန်အာသဖဌင့် ၎င်သကို ပုံသေဆက်တင်မျာသဖဌင့် ဖန်တီသထာသခဌင်သမဟုတ်ဘဲ qmail သည် အာသနည်သနေသေသသည်)။ ထို့အပဌင်၊ "control/databytes" သည် ကန့်သတ်ချက်ကို qmail-smtpd မဟသာလျဟင် ထည့်သလင်သစဉ်သစာသသောကဌောင့်၊ စနစ်အသုံသပဌုသူမျာသထံမဟ ဒေသတလင်သတိုက်ခိုက်မဟုမျာသကို မကာကလယ်နိုင်ပါ။

ပဌဿနာက အထုပ်ကို ထိခိုက်စေတယ်။ netqmailDebian repositories တလင် ပါဝင်သည်။ 2005 ခုနဟစ်မဟ အာသနည်သချက်နဟစ်ခုလုံသကို ဖယ်ရဟာသပစ်ရန် ကပက်ကေ့ခ်ျအစုံကို ပဌင်ဆင်ထာသပဌီသ ( hard memory limits မျာသကို alloc() function code သို့ ပေါင်သထည့်ခဌင်သဖဌင့်) နဟင့် qmail-verify ရဟိ ပဌဿနာအသစ်မျာသ။ သတ်သတ် ပဌင်ဆင်သည် qmail-verify patch ၏ အပ်ဒိတ်ဗာသရဟင်သ။ Developer မျာသ အကိုင်သအခက် notqmail ပဌဿနာဟောင်သမျာသကို ပိတ်ဆို့ရန်အတလက် ၎င်သတို့၏ကိုယ်ပိုင် ဖာထေသမဟုမျာသကို ပဌင်ဆင်ခဲ့ပဌီသ ကုဒ်အတလင်သရဟိ ဖဌစ်နိုင်သမျဟ ကိန်သပဌည့်မျာသအာသလုံသကို ဖယ်ရဟာသပစ်ရန် စတင်လုပ်ဆောင်ခဲ့သည်။

source: opennet.ru

မဟတ်ချက် Add