Exim တွင် အရေးကြီးသော အားနည်းချက်များ၏ အသေးစိတ်အချက်အလက်များကို ဖော်ပြခဲ့သည်။

ထုတ်ဝေခဲ့သည်။ မှန်ကန်သောထုတ်ပြန်မှု Exim 4.92.2 ဝေဖန်ပိုင်းခြားခြင်းနှင့်အတူ အားနည်းချက်များ (CVE-2019-15846) မူလဖွဲ့စည်းပုံစနစ်တွင် root အခွင့်ထူးများဖြင့် တိုက်ခိုက်သူမှ အဝေးကုဒ်ကို အကောင်အထည်ဖော်ရန် ဦးတည်နိုင်သည်။ TLS ပံ့ပိုးမှုကို ဖွင့်ထားသည့်အခါတွင်သာ ပြဿနာပေါ်လာပြီး အထူးဒီဇိုင်းထုတ်ထားသော သုံးစွဲသူလက်မှတ် သို့မဟုတ် SNI သို့ မွမ်းမံထားသောတန်ဖိုးကို ဖြတ်သန်းခြင်းဖြင့် အမြတ်ထုတ်သည်။ အားနည်းချက် ဖော်ထုတ်ခဲ့သည်။ Qualitys မှ

ပြဿနာ ပစ္စုပ္ပန် string အတွင်းရှိ အထူးဇာတ်ကောင်များ လွတ်မြောက်ရန်အတွက် ကိုင်တွယ်သူတွင် (string_interpret_escape() string.c) မှ null အက္ခရာ ('\0') မတိုင်မီနှင့် ၎င်းကို လွတ်မြောက်ခြင်းမပြုမီ string.c) ၏အဆုံးရှိ '\' စာလုံးကြောင့် ဖြစ်ပေါ်လာခြင်းဖြစ်သည်။ ထွက်ပြေးသည့်အခါ၊ sequence '\' နှင့် အောက်ပါ null end-of-line ကုဒ်ကို အက္ခရာတစ်ခုတည်းအဖြစ် သတ်မှတ်ပြီး ညွှန်ပြချက်ကို မျဉ်း၏အဆက်အဖြစ် ယူဆထားသည့် လိုင်းပြင်ပဒေတာသို့ ကူးပြောင်းသွားပါသည်။

string_interpret_escape() ဟုခေါ်သော ကုဒ်သည် အမှန်တကယ်အရွယ်အစားပေါ်အခြေခံ၍ ယိုစီးမှုအတွက် ကြားခံတစ်ခုကို ခွဲဝေပေးသည်၊ နှင့်ထိတွေ့နေသောညွှန်ပြသည် ကြားခံ၏ဘောင်အပြင်ဘက်ရှိ ဧရိယာတွင်အဆုံးသတ်သည်။ ထို့ကြောင့်၊ input string တစ်ခုကို လုပ်ဆောင်ရန် ကြိုးစားသောအခါ၊ ခွဲဝေပေးထားသော ကြားခံ၏ ဘောင်အပြင်ဘက်ရှိ ဧရိယာမှ ဒေတာကို ဖတ်သည့်အခါ အခြေအနေတစ်ခု ဖြစ်ပေါ်လာပြီး မလွတ်မြောက်သော စာကြောင်းတစ်ခုကို ရေးသားရန် ကြိုးပမ်းခြင်းသည် ကြားခံဘောင်ကိုကျော်လွန်၍ ရေးသားခြင်းဆီသို့ ဦးတည်သွားစေနိုင်သည်။

မူရင်းဖွဲ့စည်းပုံစနစ်တွင်၊ ဆာဗာသို့ လုံခြုံသောချိတ်ဆက်မှုတစ်ခုတည်ဆောက်သောအခါတွင် အထူးဒီဇိုင်းထုတ်ထားသောဒေတာကို SNI သို့ပေးပို့ခြင်းဖြင့် အားနည်းချက်ကိုအသုံးချနိုင်သည်။ client လက်မှတ်စစ်မှန်ကြောင်းအတည်ပြုခြင်းအတွက်ပြင်ဆင်ထားသောပုံစံများ သို့မဟုတ် လက်မှတ်များကိုတင်သွင်းသည့်အခါတွင် peerdn တန်ဖိုးများကိုမွမ်းမံခြင်းဖြင့်လည်း ပြဿနာကိုအသုံးချနိုင်သည်။ SNI နှင့် peerdn မှတစ်ဆင့် တိုက်ခိုက်ခြင်းသည် ထုတ်ဝေမှုမှ စတင်၍ ဖြစ်နိုင်သည်။ Exim 4.80peerdn နှင့် SNI အကြောင်းအရာများကို ထုတ်ယူရန် string_unprinting() လုပ်ဆောင်ချက်ကို အသုံးပြုခဲ့သည်။

Glibc ဖြင့် Linux စနစ်များရှိ i386 နှင့် amd64 ဗိသုကာများပေါ်တွင် လုပ်ဆောင်နေသည့် SNI မှတစ်ဆင့် တိုက်ခိုက်မှုအတွက် အသုံးချပုံတူပုံစံကို ပြင်ဆင်ထားပါသည်။ exploit သည် heap area တွင် data overlay ကို အသုံးပြုပြီး log file name ကို သိမ်းဆည်းထားသည့် memory ကို overwrite လုပ်ခြင်းဖြင့် ရလဒ်ကို ရရှိသည်။ ဖိုင်အမည်ကို "/../../../../../../../../etc/passwd" ဖြင့် အစားထိုးထားသည်။ ထို့နောက်၊ ပေးပို့သူ၏လိပ်စာပါသော ကိန်းရှင်ကို မှတ်တမ်းတွင် ဦးစွာသိမ်းဆည်းထားပြီး၊ ၎င်းသည် စနစ်သို့အသုံးပြုသူအသစ်တစ်ဦးကို ထည့်သွင်းနိုင်စေမည့် မှတ်တမ်းတွင် သိမ်းဆည်းထားသည်။

ဖြန့်ဖြူးမှုများမှ ထုတ်ပြန်သော အားနည်းချက်ပြင်ဆင်မှုများနှင့်အတူ ပက်ကေ့ခ်ျအပ်ဒိတ်များ debian, Ubuntu ကို, Fedora, SUSE/openSUSE и FreeBSD. RHEL နှင့် CentOS ပြဿနာ ဖြစ်စရာမရှိပါ။Exim သည် ၎င်းတို့၏ ပုံမှန် ပက်ကေ့ချ်သိုလှောင်မှုတွင် မပါဝင်သောကြောင့် (in နွေး update ကို ပြီးပြီ ဖွဲ့စည်းခဲ့သည်။ဒါပေမယ့် အခုပဲ မထားရှိပါ။ အများသူငှာ သိမ်းဆည်းရန်။) Exim ကုဒ်တွင် ပြဿနာကို one-liner ဖြင့် ဖြေရှင်းသည်။ ဖာထေးခြင်း။မျဉ်းအဆုံးတွင်ရှိနေပါက backslash ၏ escape effect ကိုပိတ်ထားသည်။

အားနည်းချက်ကို ပိတ်ဆို့ရန် ဖြေရှင်းချက်အနေဖြင့် TLS ပံ့ပိုးမှုကို ပိတ်နိုင်သည် သို့မဟုတ် ထည့်နိုင်သည်။
ACL ကဏ္ဍ “acl_smtp_mail”-

ငြင်းဆိုမှုအခြေအနေ = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
ငြင်းဆိုမှုအခြေအနေ = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

source: opennet.ru

မှတ်ချက် Add