Gwendidau yn OpenSMTPD sy'n caniatáu mynediad anghysbell a lleol i'r gwraidd

Cwmni Qualys datgelu bregusrwydd critigol arall o bell (CVE-2020-8794) yn y gweinydd post AgoredSMTPD, a ddatblygwyd gan y prosiect OpenBSD. Fel yr un a nodwyd ddiwedd Ionawr bregusrwydd, mae mater newydd yn ei gwneud hi'n bosibl gweithredu gorchmynion cregyn mympwyol o bell ar weinydd gyda hawliau defnyddiwr gwraidd. Bregusrwydd dileu mewn rhifyn OpenSMTPD 6.6.4p1.

Achosir y broblem gan nam yn y cod sy'n danfon post i'r gweinydd post o bell (nid yn y cod sy'n trin cysylltiadau sy'n dod i mewn). Mae'r ymosodiad yn bosibl ar ochr y cleient ac ar ochr y gweinydd. Ar ochr y cleient, mae'r ymosodiad yn bosibl yng nghyfluniad diofyn OpenSMTPD, lle mae OpenSMTPD yn derbyn ceisiadau ar y rhyngwyneb rhwydwaith mewnol yn unig (localhost) ac yn anfon negeseuon post i weinyddion allanol. Er mwyn manteisio ar y bregusrwydd, mae'n ddigon bod OpenSMTPD, wrth ddosbarthu llythyr, yn sefydlu sesiwn gyda gweinydd post a reolir gan yr ymosodwr, neu y gall yr ymosodwr lyncu i mewn i'r cysylltiad cleient (MITM neu ailgyfeirio yn ystod ymosodiadau trwy DNS neu BGP ).

Ar gyfer ymosodiad ar ochr y gweinydd, rhaid ffurfweddu OpenSMTPD i dderbyn ceisiadau rhwydwaith allanol gan weinyddion post eraill neu wasanaethu gwasanaethau trydydd parti sy'n eich galluogi i anfon cais i e-bost mympwyol (er enghraifft, ffurflenni cadarnhau cyfeiriad ar wefannau). Er enghraifft, gall ymosodwr gysylltu â'r gweinydd OpenSMTPD ac anfon llythyr anghywir (at ddefnyddiwr nad yw'n bodoli), a fydd yn arwain at ymateb yn anfon llythyr gyda chod gwall (bownsio) i weinydd yr ymosodwr. Gall ymosodwr fanteisio ar y bregusrwydd pan fydd OpenSMTPD yn cysylltu i gyflwyno hysbysiad i weinydd yr ymosodwr. Mae'r gorchmynion cregyn a chwistrellwyd yn ystod yr ymosodiad yn cael eu gosod mewn ffeil a weithredir gyda hawliau gwraidd pan fydd OpenSMTPD yn cael ei ailgychwyn, felly mae'n rhaid i'r ymosodwr aros i OpenSMTPD ailgychwyn neu gychwyn damwain o OpenSMTPD i gwblhau'r ymosodiad.

Mae'r broblem yn bresennol yn y swyddogaeth mta_io() yn y cod ar gyfer dosrannu'r ymateb aml-linell a ddychwelwyd gan y gweinydd pell ar ôl sefydlu cysylltiad (er enghraifft, "250-ENHANCEDSTATUSCODES" a "250 HELP"). Mae OpenSMTPD yn cyfrifo bod y llinell gyntaf yn cynnwys rhif tri digid a thestun wedi'u gwahanu gan gymeriad “-“, ac mae'r ail linell yn cynnwys rhif tri digid a thestun wedi'u gwahanu gan fwlch. Os na ddilynir rhif tri digid gan fwlch a thestun yn yr ail linell, gosodir y pwyntydd a ddefnyddir i ddiffinio'r testun i'r beit yn dilyn y nod '\0' a cheisir copïo'r data ar ôl y diwedd o'r llinell i mewn i'r byffer.

Ar gais y prosiect OpenBSD, mae cyhoeddi manylion am ymelwa ar y bregusrwydd wedi'i ohirio tan Chwefror 26ain er mwyn caniatáu i ddefnyddwyr ddiweddaru eu systemau. Mae'r broblem wedi bod yn bresennol yn y codebase ers mis Rhagfyr 2015, ond mae ecsbloetio cyn gweithredu cod gyda breintiau gwraidd wedi bod yn bosibl ers mis Mai 2018. Paratôdd yr ymchwilwyr brototeip gweithredol o'r camfanteisio, a brofwyd yn llwyddiannus yn adeiladau OpenSMTPD ar gyfer OpenBSD 6.6, OpenBSD 5.9, Debian 10, Debian 11 (profi) a Fedora 31.

Yn OpenSMTPD hefyd a nodwyd Gwendid arall (CVE-2020-8793) sy'n caniatáu i ddefnyddiwr lleol ddarllen llinell gyntaf unrhyw ffeil ar y system. Er enghraifft, gallwch ddarllen y llinell gyntaf o /etc/master.passwd, sy'n cynnwys hash cyfrinair y defnyddiwr gwraidd. Mae'r bregusrwydd hefyd yn caniatáu ichi ddarllen holl gynnwys ffeil sy'n eiddo i ddefnyddiwr arall os yw'r ffeil hon wedi'i lleoli yn yr un system ffeiliau â'r cyfeiriadur /var/spool/smtpd/. Nid oes modd manteisio ar y broblem ar lawer o ddosbarthiadau Linux lle mae gwerth /proc/sys/fs/protected_hardlinks wedi'i osod i 1.

Mae'r broblem yn ganlyniad i ddileu anghyflawn problemau, a leisiwyd yn ystod yr archwiliad a gynhaliwyd gan Qualys yn 2015. Gall ymosodwr gyflawni ei god gyda hawliau'r grŵp “_smtpq” trwy osod y newidyn “PATH=.”. a gosod sgript o'r enw makemap yn y cyfeiriadur cyfredol (mae'r cyfleustodau smtpctl yn rhedeg makemap heb nodi'r llwybr yn benodol). Trwy gael mynediad i'r grŵp "_smtpq", gall yr ymosodwr wedyn achosi cyflwr hil (creu ffeil fawr yn y cyfeiriadur all-lein ac anfon signal SIGSTOP) a, cyn i'r prosesu gael ei gwblhau, disodli'r ffeil yn y cyfeiriadur all-lein gyda chaled cyswllt syml yn pwyntio at y ffeil darged y mae angen darllen ei chynnwys .

Mae'n werth nodi bod y bregusrwydd yn Fedora 31 yn caniatáu ichi ennill breintiau'r grŵp gwreiddiau ar unwaith, gan fod y broses smtpctl wedi'i chyfarparu â baner gwraidd setgid, yn lle'r faner setgid smtpq. Trwy gael mynediad i'r grŵp gwraidd, gallwch drosysgrifo cynnwys /var/lib/sss/mc/passwd a chael mynediad gwraidd llawn i'r system.

Ffynhonnell: opennet.ru

Ychwanegu sylw