Qualys ကုမ္ပဏီ
ပြဿနာသည် အဝေးမှမေးလ်ဆာဗာသို့ စာပို့သည့်ကုဒ်တွင် အမှားအယွင်းတစ်ခုကြောင့် (အဝင်ချိတ်ဆက်မှုများကို ကိုင်တွယ်သည့်ကုဒ်တွင်မဟုတ်ပါ)။ တိုက်ခိုက်မှုသည် client side နှင့် server side တွင် နှစ်မျိုးလုံး ဖြစ်နိုင်သည်။ ကလိုင်းယင့်ဘက်တွင်၊ OpenSMTPD ၏ ပုံသေဖွဲ့စည်းပုံပုံစံတွင် တိုက်ခိုက်ခြင်းဖြစ်နိုင်သည်၊ ၎င်းတွင် OpenSMTPD သည် အတွင်းကွန်ရက်အင်တာဖေ့စ် (localhost) တွင်သာ တောင်းဆိုမှုများကို လက်ခံပြီး ပြင်ပဆာဗာများသို့ စာတိုပေးပို့သည်။ အားနည်းချက်ကို အသုံးချရန်၊ စာတစ်စောင်ပေးပို့စဉ်တွင်၊ OpenSMTPD သည် တိုက်ခိုက်သူမှ ထိန်းချုပ်ထားသော မေးလ်ဆာဗာတစ်ခုဖြင့် session တစ်ခုကို ထူထောင်သည်၊ သို့မဟုတ် တိုက်ခိုက်သူသည် client ချိတ်ဆက်မှုသို့ သပ်နိုင်သည် (MITM သို့မဟုတ် DNS သို့မဟုတ် BGP မှတစ်ဆင့် တိုက်ခိုက်မှုအတွင်း ပြန်ညွှန်းနိုင်သည် )
ဆာဗာဘက်ခြမ်းတိုက်ခိုက်မှုအတွက်၊ OpenSMTPD သည် အခြားမေးလ်ဆာဗာများထံမှ ပြင်ပကွန်ရက်တောင်းဆိုမှုများကို လက်ခံရရှိရန် သို့မဟုတ် သင့်အား မတရားသောအီးမေးလ်တစ်ခုထံ တောင်းဆိုချက်တစ်ခုပေးပို့ရန် ခွင့်ပြုသည့် ပြင်ပဝန်ဆောင်မှုများ (ဥပမာ၊ ဝဘ်ဆိုက်များရှိ လိပ်စာအတည်ပြုမှုပုံစံများ) ကို ဆောင်ရွက်ပေးရန် စီစဉ်သတ်မှတ်ထားရပါမည်။ ဥပမာအားဖြင့်၊ တိုက်ခိုက်သူတစ်ဦးသည် OpenSMTPD ဆာဗာသို့ ချိတ်ဆက်နိုင်ပြီး မှားယွင်းသောစာတစ်စောင် (နဂိုမရှိသောအသုံးပြုသူထံသို့) ပေးပို့နိုင်ပြီး ၎င်းသည် တိုက်ခိုက်သူ၏ဆာဗာသို့ အမှားကုဒ်ဖြင့် စာတစ်စောင်ပေးပို့ခြင်းအား တုံ့ပြန်မှုဖြစ်ပေါ်စေမည်ဖြစ်သည်။ တိုက်ခိုက်သူ၏ဆာဗာသို့ အသိပေးချက်တစ်ခုပေးပို့ရန် OpenSMTPD ချိတ်ဆက်သည့်အခါ တိုက်ခိုက်သူသည် အားနည်းချက်ကို အသုံးချနိုင်သည်။ တိုက်ခိုက်မှုအတွင်း ထည့်သွင်းထားသော shell command များကို OpenSMTPD ပြန်လည်စတင်သည့်အခါ root လုပ်ပိုင်ခွင့်ဖြင့် လုပ်ဆောင်ထားသော ဖိုင်တစ်ခုတွင် ထည့်သွင်းထားသောကြောင့် တိုက်ခိုက်သူသည် တိုက်ခိုက်မှုပြီးမြောက်ရန် OpenSMTPD ကို ပြန်လည်စတင်ရန် သို့မဟုတ် စတင်ရန် စောင့်ဆိုင်းရမည်ဖြစ်ပါသည်။
ချိတ်ဆက်မှုတစ်ခုတည်ဆောက်ပြီးနောက် အဝေးထိန်းဆာဗာမှ ပြန်ပေးသော multiline တုံ့ပြန်မှုကို ခွဲခြမ်းစိတ်ဖြာရန်အတွက် ကုဒ်ရှိ mta_io() လုပ်ဆောင်ချက်တွင် ပြဿနာရှိနေသည် (ဥပမာ၊ "250-ENHANCEDSTATUSCODES" နှင့် "250 HELP")။ OpenSMTPD သည် ပထမစာကြောင်းတွင် ဂဏန်းသုံးလုံးနံပါတ်နှင့် "-" အက္ခရာဖြင့် ပိုင်းခြားထားသော စာသားပါ၀င်ကြောင်း၊ ဒုတိယစာကြောင်းတွင် ဂဏန်းသုံးလုံးနံပါတ်နှင့် နေရာလွတ်တစ်ခုခြားထားသော စာသားပါရှိသည်။ ဂဏန်းသုံးလုံးနံပါတ်ကို ဒုတိယစာကြောင်းရှိ နေရာလွတ်နှင့် စာသားနောက်တွင် မလိုက်ပါက၊ စာသားကို သတ်မှတ်ရန် အသုံးပြုသော ညွှန်ပြချက်ကို '\0' အက္ခရာအောက်ပါ byte သို့ သတ်မှတ်ထားပြီး အဆုံးတွင် ဒေတာကို ကူးယူရန် ကြိုးပမ်းမှု ပြုလုပ်ပါသည်။ လိုင်း၏ကြားခံသို့။
OpenBSD ပရောဂျက်၏ တောင်းဆိုချက်အရ၊ အသုံးပြုသူများ ၎င်းတို့၏စနစ်များကို အပ်ဒိတ်လုပ်ခွင့်ပြုရန် အားနည်းချက်ကို အသုံးချခြင်းဆိုင်ရာ အသေးစိတ်အချက်အလက်များ ထုတ်ပြန်ခြင်းကို ဖေဖော်ဝါရီ ၂၆ ရက်အထိ နှောင့်နှေးခဲ့သည်။ အဆိုပါပြဿနာသည် 26 ခုနှစ် ဒီဇင်ဘာလကတည်းက codebase တွင်ရှိနေခဲ့ပြီးဖြစ်သော်လည်း root အခွင့်ထူးများဖြင့် ကုဒ်မလုပ်ဆောင်မီ ထုတ်ယူခြင်းမှာ 2015 ခုနှစ် မေလကတည်းက ဖြစ်နိုင်သည်။ သုတေသီများသည် OpenBSD 2018၊ OpenBSD 6.6၊ Debian 5.9၊ Debian 10 (စမ်းသပ်ခြင်း) နှင့် Fedora 11 အတွက် OpenSMTPD တည်ဆောက်မှုများတွင် အောင်မြင်စွာ စမ်းသပ်ခဲ့သည့် exploit ၏ ရှေ့ပြေးပုံစံကို သုတေသီများက ပြင်ဆင်ခဲ့သည်။
OpenSMTPD တွင်လည်း
ပြဿနာသည် မပြည့်စုံခြင်း၏ အကျိုးဆက်ဖြစ်သည်။
Fedora 31 တွင် အားနည်းချက်သည် သင့်အား smtpctl လုပ်ငန်းစဉ်တွင် setgid smtpq အလံအစား setgid root flag နှင့်တပ်ဆင်ထားသောကြောင့် root group ၏အခွင့်ထူးများကိုချက်ချင်းရရှိနိုင်သည်ကို သတိပြုမိပါသည်။ အမြစ်အဖွဲ့သို့ ဝင်ရောက်ခွင့်ရခြင်းဖြင့်၊ သင်သည် /var/lib/sss/mc/passwd ၏ အကြောင်းအရာများကို ထပ်ရေးနိုင်ပြီး စနစ်သို့ အပြည့်အဝ အမြစ်ဝင်ရောက်ခွင့်ကို ရရှိနိုင်သည်။
source: opennet.ru