Gwendid y gellir ei ecsbloetio o bell yn y gweinydd post qmail

Ymchwilwyr diogelwch o Qualys dangosodd cyfle Gweithredu gwendidau yn y gweinydd post qmail, enwog yn ôl yn 2005 (CVE-2005-1513), ond arhosodd yn ddigyfnewid oherwydd dadleuodd awdur qmail ei bod yn afrealistig i greu ecsbloetio gweithredol y gellid ei ddefnyddio i ymosod ar systemau yn y ffurfweddiad rhagosodedig. Llwyddodd Qualys i baratoi camfanteisio sy'n gwrthbrofi'r dybiaeth hon ac sy'n caniatáu i un gychwyn gweithredu cod o bell ar y gweinydd trwy anfon neges a ddyluniwyd yn arbennig.

Achosir y broblem gan orlif cyfanrif yn y ffwythiant stralloc_readyplus(), a all ddigwydd wrth brosesu neges fawr iawn. Roedd angen system 64-did gyda mwy na 4GB o gof rhithwir i weithredu. Pan ddadansoddwyd y bregusrwydd yn wreiddiol yn 2005, dadleuodd Daniel J. Bernstein fod y rhagdybiaeth yn y cod bod maint yr arae a neilltuwyd bob amser o fewn gwerth 32-bit yn seiliedig ar y ffaith nad oes neb yn darparu gigabeit o gof i bob proses. Dros y 15 mlynedd diwethaf, mae systemau 64-did ar weinyddion wedi disodli systemau 32-did, ac mae maint y cof a gyflenwir a lled band rhwydwaith wedi cynyddu'n ddramatig.

Cymerodd y cynhalwyr pecyn qmail nodyn Bernstein i ystyriaeth a chyfyngodd y cof sydd ar gael wrth gychwyn y broses qmail-smtpd (er enghraifft, mae Debian 10 yn gosod terfyn o 7MB). Ond canfu peirianwyr o Qualys nad yw hyn yn ddigon ac, yn ogystal â qmail-smtpd, gellir cynnal ymosodiad o bell ar y broses qmail-local, a oedd yn parhau i fod yn ddigyfyngiad ym mhob pecyn a brofwyd. Fel prawf, paratowyd prototeip ecsbloetio, sy'n addas ar gyfer ymosod ar y pecyn Debian gyda qmail yn y ffurfweddiad rhagosodedig.
I drefnu gweithredu cod o bell yn ystod ymosodiad, mae angen 4GB o le ar y ddisg am ddim ac 8GB o RAM ar y gweinydd.
Mae'r camfanteisio yn caniatáu ichi redeg unrhyw orchmynion cregyn gyda hawliau unrhyw ddefnyddiwr yn y system, ac eithrio defnyddwyr gwraidd a system nad oes ganddynt eu his-gyfeiriadur eu hunain yn y cyfeiriadur “/ home” (lansir y broses qmail-local gyda'r hawliau y defnyddiwr lleol y gwneir y danfoniad iddo).

Mae'r ymosodiad yn cael ei gynnal
trwy anfon neges bost fawr iawn, gan gynnwys sawl pennawd, yn mesur tua 4GB a 576MB. Mae prosesu llinyn o'r fath yn qmail-local yn arwain at orlif cyfanrif wrth geisio danfon neges i'r defnyddiwr lleol. Yna mae gorlif cyfanrif yn arwain at orlif byffer wrth gopïo data a'r posibilrwydd o drosysgrifo tudalennau cof gyda chod libc. Trwy drin gosodiad y data a drosglwyddir, mae hefyd yn bosibl ailysgrifennu cyfeiriad y swyddogaeth “agored ()”, gan roi cyfeiriad y swyddogaeth “system ()” yn ei le.

Nesaf, yn y broses o alw qmesearch() yn qmail-local, mae'r ffeil “.qmail-extension” yn cael ei hagor trwy'r swyddogaeth agored (), sy'n arwain at gyflawni'r swyddogaeth mewn gwirionedd
system (". qmail-estyniad"). Ond gan fod rhan “estyniad” y ffeil yn cael ei chynhyrchu yn seiliedig ar gyfeiriad y derbynnydd (er enghraifft, “localuser-extension@localdomain”), gall ymosodwyr drefnu i'r gorchymyn gael ei anfon i redeg trwy nodi'r defnyddiwr “localuser-; command ;@localdomain” fel derbynnydd y neges.

Yn ystod y dadansoddiad cod, nodwyd dau wendid hefyd yn y darn ychwanegol qmail-verify, sy'n rhan o'r pecyn ar gyfer Debian. bregusrwydd cyntaf (CVE-2020-3811) yn caniatáu ichi osgoi dilysu cyfeiriad e-bost, a'r ail (CVE-2020-3812) yn arwain at ollwng gwybodaeth leol. Yn benodol, mae'r bregusrwydd cyntaf yn eich galluogi i osgoi dilysu cywirdeb y cyfeiriad a ddefnyddir yn y camfanteisio i anfon gorchymyn (nid yw'r dilysiad yn gweithio ar gyfer cyfeiriadau heb barth, fel "localuser-; command;"). Gellir defnyddio'r ail fregusrwydd i wirio presenoldeb ffeiliau a chyfeiriaduron ar y system, gan gynnwys y rhai sy'n hygyrch yn unig i root (qmail-verify yn rhedeg gyda hawliau gwraidd), trwy alwad uniongyrchol i'r triniwr lleol.

Er mwyn gweithio o gwmpas y broblem, argymhellodd Bernstein redeg prosesau qmail gyda chyfyngiad llwyr ar y cof sydd ar gael (“softlimit -m12345678”), ac os felly mae'r broblem yn cael ei rhwystro. Fel dull arall o amddiffyn, sonnir hefyd am gyfyngu ar faint mwyaf y neges wedi'i phrosesu trwy'r ffeil “control / databytes” (yn ddiofyn nid yw'n cael ei greu gyda gosodiadau diofyn, mae qmail yn parhau i fod yn agored i niwed). Yn ogystal, nid yw "control/databytes" yn amddiffyn rhag ymosodiadau lleol gan ddefnyddwyr y system, gan mai dim ond yn qmail-smtpd y cymerir y terfyn i ystyriaeth.

Mae'r broblem yn effeithio ar y pecyn rhwydqmail, yn gynwysedig yn ystorfeydd Debian. Mae set o glytiau wedi'u paratoi ar gyfer y pecyn hwn, gan ddileu hen wendidau o 2005 (trwy ychwanegu terfynau cof caled i'r cod swyddogaeth alloc()) a phroblemau newydd yn qmail-verify. Ar wahân wedi'i baratoi fersiwn wedi'i diweddaru o'r clwt qmail-verify. Datblygwyr canghenau notqmail paratoi eu clytiau eu hunain i rwystro hen broblemau, a hefyd wedi dechrau gweithio i ddileu'r holl orlifau cyfanrif posibl yn y cod.

Ffynhonnell: opennet.ru

Ychwanegu sylw