Kaugel asuva haavatavuse qmail’i postiserveris

Turvauuringute töötajad Qualysest nĂ€itasime, kuidas töötada Windows Server 2019 Core'iga ja kuidas sellele GUI installida. vĂ”imaluse lekke haavatavused qmail’i postiserveris, kuulsast olenud teada alates 2005. aastast (CVE-2005-1513), kuid jÀÀnud lahendamata, kuna qmail’i autor vĂ€itis, et töökindla eksploitatsioonivahendi loomine, mis vĂ”iks rĂŒnnata vaikekonfiguratsiooniga sĂŒsteeme, on ebatĂ”enĂ€oline. Qualysel Ă”nnestus valmistada eksploit, mis tĂ”estab selle oletuse vale ja vĂ”imaldab algatada kaugel kĂ€ivitatavat koodi serveris, saates spetsiaalselt kujundatud sĂ”numi.

Probleem on pĂ”hjustatud tĂ€isarvu ĂŒlevoolust funktsioonis stralloc_readyplus(), mis vĂ”ib tekkida vĂ€ga suure sĂ”numi töötlemise ajal. Ekspluateerimiseks oli vajalik 64-bitine sĂŒsteem, millel on rohkem kui 4 GB virtuaalset mĂ€lu. Kui 2005. aastal uuris haavatavust, vĂ€itis Daniel J. Bernstein, et koodis olemasolev eeldus, et eraldatud massiivi suurus ei ĂŒleta 32-bitist vÀÀrtust, pĂ”hineb sellel, et keegi ei anna igale protsessile gigabaite mĂ€lu. Viimase 15 aasta jooksul on 64-bitised sĂŒsteemid serverites tĂ”rjunud 32-bitiseid, mĂ€lu maht on oluliselt suurenenud ja vĂ”rgukiirus on kasvanud.

qmail’iga kaasnevad paketid vĂ”tsid Bernsteinile adresseeritud mĂ€rkuse arvesse ja qmail-smtpd protsessi kĂ€ivitamisel piirati kĂ€ttesaadavat mĂ€lu (nĂ€iteks Debian 10 seades on piir 7MB). Kuid Qualyse insenerid avastasid, et see on ebapiisav ja lisaks qmail-smtpd-le on kaugrĂŒnnak vĂ”imalik ka qmail-local protsessi vastu, mis jĂ€i kĂ”ikides kontrollitud pakettides piiranguteta. TĂ”endusena valmistati ette eksploitatsiooni prototĂŒĂŒp, mis sobib rĂŒnnakuks vaikekonfiguratsiooniga Debian paketti qmail’iga.
Kaugel kĂ€ivitatava koodi korraldamiseks rĂŒnnaku kĂ€igus on serveris vajalik 4 GB vaba kettaruumi ja 8 GB RAM-i.
Eksploit vĂ”imaldab kĂ€ivitada mis tahes shell-kĂ€sklusi mis tahes sĂŒsteemi kasutaja Ă”igustes, vĂ€lja arvatud root ja sĂŒsteemi kasutajad, kellel pole oma alamkausta kaustas "/home" (qmail-local protsess kĂ€ivitatakse kohaliku kasutaja Ă”igustes, kellele toimub kohaletoimetamine).

RĂŒnnak toimub
lĂ€bi vĂ€ga suure e-kirja saatmise, mis sisaldab mitmeid ridu pĂ€ises, suurusega umbes 4GB ja 576MB. Sellise rea töötlemine qmail-local toob kaasa tĂ€isarvu ĂŒlevoolu, kui ĂŒritatakse kohaliku kasutaja jaoks sĂ”numit edastada. TĂ€isarvu ĂŒlevool toob omakorda kaasa puhverserveri ĂŒlevoo andmete kopeerimise kĂ€igus ja vĂ”imaluse kirjutada ĂŒmber mĂ€lulehekĂŒlgi libc-koodiga. Andmete edastamise paigutuse manipuleerimise kaudu on vĂ”imalik ka kirjutada funktsiooni "open()" aadress, asendades selle funktsiooni aadressiga "system()".

Edasi, qmail-localis meetodi qmesearch() vÀljakutsumise kÀigus avatakse fail " .qmail-extension" funktsiooni open() kaudu, mis toob kaasa funktsiooni kÀivitamise
system(".qmail-extension"). Kuid kuna osa failist "extension" moodustatakse saaja aadressi pĂ”hjal (nĂ€iteks "localuser-extension@localdomain"), saavad rĂŒndajad korraldada kĂ€su edastamise, mÀÀrates saajaks "localuser-;command;@localdomain".

Koodi analĂŒĂŒsi kĂ€igus avastati ka kaks haavatavust tĂ€iendavas qmail-verify plaastris, mis kuulub Debian'i paketti. Esimene haavatavus (CVE-2020-3811) vĂ”imaldab vĂ€ltida e-posti aadressi kontrollimist, teine (CVE-2020-3812) toob kaasa kohaliku teabe leket. EelkĂ”ige vĂ”imaldab esimene haavatavus vĂ€ltida aadressi kehtivuse kontrolli, mis on kasutusele vĂ”etud kĂ€skude edastamiseks (kontroll ei tööta domainta aadresside puhul, nagu "localuser-;command;"). Teist haavatavust saab kasutada failide ja kataloogide olemasolu kontrollimiseks sĂŒsteemis, sealhulgas ainult root'ile kĂ€ttesaadavate, kuna qmail-verify kĂ€ivitatakse root'i Ă”igustega, tehakse otse kohaliku töötleja juurde.

Probleemi vĂ€ltimiseks soovitas Bernstein kĂ€ivitada qmail-protsessid, seades ĂŒldise piiri saadaval olevale mĂ€lule ("softlimit -m12345678"), ja sel juhul probleem blokeeritakse. Alternatiivse kaitsemeetodina mainitakse ka töötlemiseks lubatava sĂ”numi maksimaalse suuruse piirangut lĂ€bi faili "control/databytes" (vaikimisi ei loo see qmaili vaikeseadistustes haavatavust). Lisaks ei kaitse "control/databytes" kohalike sĂŒsteemi kasutajate rĂŒnnakute eest, kuna piirangut arvestatakse ainult qmail-smtpd juures.

Probleem puudutab paketti netqmail, mis sisaldu on Debiani hoidlas. Selle paketi jaoks on ette valmistatud plekkide kogum, mis kĂ”rvaldab nii vanad 2005. aasta haavatavused (lisa kaudu alloc() funktsiooni mĂ€lu piirangud) kui ka uued probleemid qmail-verify-s. Eristi on ette valmistatud uuendatud versioon patch'ist qmail-verify. Arendajad haru notqmail valmistasid ette oma plaastrid vanade probleemide blokeerimiseks ning alustasid tööd, et kĂ”rvaldada kĂ”ik vĂ”imalikes koodis esinevad tĂ€isarvude ĂŒletĂ€itumised.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster