Kampuni ya Qualys
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
Tatizo ni matokeo ya kutokamilika kabisa
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