Ymchwilwyr diogelwch o Qualys
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 (
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
Ffynhonnell: opennet.ru