Athari katika OpenSMTPD inayoruhusu ufikiaji wa mbali na wa ndani wa mizizi

Kampuni ya Qualys imefichuliwa hatari nyingine muhimu ya mbali (CVE-2020-8794) kwenye seva ya barua Fungua SMTPD, iliyoandaliwa na mradi wa OpenBSD. Kama ile iliyotambuliwa mwishoni mwa Januari kuathirika, suala jipya hufanya iwezekane kutekeleza amri za kiholela za kiholela kwa mbali kwenye seva iliyo na haki za mtumiaji wa mizizi. Udhaifu kuondolewa katika toleo OpenSMTPD 6.6.4p1.

Tatizo linasababishwa na hitilafu katika msimbo unaopeleka barua kwa seva ya barua pepe ya mbali (sio katika msimbo unaoshughulikia miunganisho inayoingia). Shambulio hilo linawezekana kwa upande wa mteja na kwa upande wa seva. Kwa upande wa mteja, shambulio linawezekana katika usanidi chaguo-msingi wa OpenSMTPD, ambapo OpenSMTPD inakubali maombi kwenye kiolesura cha ndani cha mtandao (localhost) na kutuma ujumbe wa barua kwa seva za nje. Ili kutumia athari hiyo, inatosha kwamba, wakati wa kuwasilisha barua, OpenSMTPD itaanzisha kipindi na seva ya barua inayodhibitiwa na mshambulizi, au kwamba mvamizi anaweza kuingia kwenye muunganisho wa mteja (MITM au kuelekeza kwingine wakati wa mashambulizi kupitia DNS au BGP. )

Kwa shambulio la upande wa seva, OpenSMTPD lazima isanidiwe ili kupokea maombi ya mtandao wa nje kutoka kwa seva zingine za barua au kutoa huduma za wahusika wengine zinazokuruhusu kutuma ombi kwa barua pepe kiholela (kwa mfano, fomu za uthibitishaji wa anwani kwenye tovuti). Kwa mfano, mshambulizi anaweza kuunganisha kwenye seva ya OpenSMTPD na kutuma barua isiyo sahihi (kwa mtumiaji ambaye hayupo), ambayo itasababisha jibu kutuma barua yenye msimbo wa hitilafu (bounce) kwa seva ya mshambulizi. Mshambulizi anaweza kutumia uwezekano wa kuathiriwa OpenSMTPD inapounganishwa ili kutoa arifa kwa seva ya mvamizi. Amri za shell zilizodungwa wakati wa shambulio huwekwa kwenye faili ambayo inatekelezwa kwa haki za mizizi wakati OpenSMTPD imewashwa upya, kwa hivyo mvamizi lazima asubiri OpenSMTPD ili kuwasha upya au kuanzisha mvurugo wa OpenSMTPD ili kukamilisha shambulio hilo.

Tatizo lipo katika chaguo la kukokotoa la mta_io() katika msimbo wa kuchanganua jibu la laini nyingi lililorejeshwa na seva ya mbali baada ya muunganisho kuanzishwa (kwa mfano, "250-ENHANCEDSTATUSCODES" na "250 HELP"). OpenSMTPD hukokotoa kuwa mstari wa kwanza unajumuisha nambari ya tarakimu tatu na maandishi yaliyotenganishwa na herufi "-", na mstari wa pili una nambari ya tarakimu tatu na maandishi yaliyotenganishwa na nafasi. Ikiwa nambari ya tarakimu tatu haifuatiwi na nafasi na maandishi katika mstari wa pili, kielekezi kinachotumiwa kufafanua maandishi kinawekwa kwa baiti kufuatia herufi ya '\0' na jaribio linafanywa kunakili data inayofuata mwisho. ya mstari kwenye bafa.

Kwa ombi la mradi wa OpenBSD, uchapishaji wa maelezo kuhusu unyonyaji wa athari umecheleweshwa hadi tarehe 26 Februari ili kuruhusu watumiaji kusasisha mifumo yao. Tatizo limekuwepo kwenye codebase tangu Desemba 2015, lakini unyonyaji kabla ya utekelezaji wa kanuni na haki za mizizi umewezekana tangu Mei 2018. Watafiti walitayarisha mfano wa kufanya kazi wa unyonyaji, ambao ulijaribiwa kwa mafanikio katika OpenSMTPD hujenga kwa OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (jaribio) na Fedora 31.

Katika OpenSMTPD pia kutambuliwa Athari nyingine (CVE-2020-8793) ambayo inaruhusu mtumiaji wa ndani kusoma safu ya kwanza ya faili yoyote kwenye mfumo. Kwa mfano, unaweza kusoma mstari wa kwanza wa /etc/master.passwd, ambao una neno la siri la mtumiaji wa mizizi. Athari hiyo pia hukuruhusu kusoma maudhui yote ya faili inayomilikiwa na mtumiaji mwingine ikiwa faili hii iko katika mfumo sawa wa faili kama saraka ya /var/spool/smtpd/. Tatizo halitumiki kwa usambazaji wengi wa Linux ambapo thamani ya /proc/sys/fs/protected_hardlinks imewekwa kuwa 1.

Tatizo ni matokeo ya kutokamilika kabisa matatizo, yaliyotolewa wakati wa ukaguzi uliofanywa na Qualys mwaka 2015. Mshambulizi anaweza kufikia utekelezaji wa nambari yake kwa haki za kikundi cha "_smtpq" kwa kuweka kigezo cha "PATH=.". na kuweka hati inayoitwa makemap kwenye saraka ya sasa (huduma ya smtpctl inaendesha ramani bila kutaja njia wazi). Kwa kupata ufikiaji wa kikundi cha "_smtpq", mshambuliaji anaweza kusababisha hali ya mbio (kuunda faili kubwa kwenye saraka ya nje ya mtandao na kutuma ishara ya SIGSTOP) na, kabla ya uchakataji kukamilika, badilisha faili kwenye saraka ya nje ya mtandao na ngumu. symlink inayoelekeza kwenye faili inayolengwa ambayo yaliyomo yake yanahitaji kusomwa.

Ni muhimu kukumbuka kuwa katika Fedora 31 mazingira magumu hukuruhusu kupata marupurupu ya kikundi cha mizizi mara moja, kwani mchakato wa smtpctl umewekwa na bendera ya mizizi ya setgid, badala ya bendera ya setgid smtpq. Kwa kupata ufikiaji wa kikundi cha mizizi, unaweza kubatilisha yaliyomo kwenye /var/lib/sss/mc/passwd na kupata ufikiaji kamili wa mfumo.

Chanzo: opennet.ru

Kuongeza maoni