Vulnerabiliteti i shfrytëzueshëm në serverin e postës qmail

Kërkuesit për siguri nga kompania Qualys të shfaqur mundësia eksploatimi vulnerabilitetet në serverin e postës qmail, i njohur që nga viti 2005 (CVE-2005-1513), por që ka mbetur e papërmirësuar, pasi autori i qmail pretendonte se krijimi i një eksploiti funksional që mund të përdorej për të sulmuar sisteme në konfigurimin standard ishte i pabesueshëm. Në Qualys arritën të përgatisin një eksploit që hedh poshtë këtë supozim dhe lejon inicimin e ekzekutimit të kodit në server përmes dërgimit të një mesazhi të formatuar posaçërisht.

Problemi i shkaktuar nga tejkalimi i numrave të plotë në funksionin stralloc_readyplus(), i cili mund të ndodhë gjatë përpunimit të një mesazhi tepër të madh. Për të shfrytëzuar këtë, kërkohej një sistem 64-bit me më shumë se 4GB memorje virtuale. Në fillim të analizës së kësaj dobësie në vitin 2005, Daniel Bernstein, pretendoi se supozimi në kod që madhësia e masës së alokuar gjithmonë do të përputhej me një vlerë 32-bit ishte i bazuar në faktin se askush nuk ofronte gigabajtë memorje për çdo proces. Gjatë 15 viteve të fundit, sistemet 64-bit në servera kanë zëvendësuar ato 32-bit, me një rritje të theksuar të sasisë së memorjes së ofruar dhe kapacitetit të rrjeteve.

Paketet mbështetëse të qmail morën parasysh vërejtjen e Bernstein dhe kur u aktivizua procesi qmail-smtpd kufizuan memorjen e disponueshme (p.sh., në Debian 10, vendoset një kufi prej 7MB). Por inxhinierët e Qualys zbuluan se kjo ishte e pamjaftueshme dhe përveç qmail-smtpd, një sulm në distancë mund të kryhej edhe ndaj procesit qmail-local, i cili në të gjitha paketat e kontrolluara mbeti pa kufizime. Si provë, u përgatit një prototip i eksploitit, i përshtatshëm për sulm ndaj paketës qmail të ofruar në Debian me konfigurimin e paracaktuar.
Për të organizuar ekzekutimin në distancë të kodit gjatë sulmit kërkohet që në server të ketë 4GB hapësirë të lirë në disk dhe 8GB RAM.
Eksploitari lejon të ekzekutohen çdo komandë shell me të drejtat e çdo përdoruesi në sistem, me përjashtim të root dhe përdoruesve sistemikë, të cilët nuk kanë një nënfolder në dosjen "/home" (procesi qmail-local aktivizohet me të drejtat e përdoruesit lokal, te cilit i dorëzohet).

Sulmi realizohet
nëpërmjet dërgimit të një mesazhi shumë të madh me postë, duke përfshirë disa rreshta në titull, me një madhësi rreth 4GB dhe 576MB. Përpunimi i një rreshti të tillë në qmail-local çon në mbivendosjen e numrave të plotë kur përpiqet të dorëzojë mesazhin te përdoruesi lokal. Mbivendosja e numrave të plotë çon pastaj në mbivendosjen e tamponit gjatë kopjimit të të dhënave dhe mundësinë e rimëkëmbjes së faqeve të memories me kodin libc. Përmes manipulimeve me kompozimin e të dhënave të dërguara, arrin të rimarrë adresën e funksionit "open()", duke e zëvendësuar atë me adresën e funksionit "system()".

Pastaj, gjatë thirrjes së qmesearch() në qmail-local, hapet skedari ".qmail-extension" përmes funksionit open(), çka çon në aktivizimin faktik të funksionit
system(".qmail-extension"). Por, pasi një pjesë e skedarit "extension" formohet në bazë të adresës së marrësit (p.sh., "localuser-extension@localdomain"), sulmuesit mund të organizojnë dërgimin e një urdhri për të aktivizuar, duke e caktuar përdoruesin "localuser-;command;@localdomain" si marrësin e mesazhit.

Gjatë analizës së kodit gjithashtu u identifikuan dy vulnerabilitete në patch-in shtesë qmail-verify, i cili është pjesë e paketës për Debian. Vulnerabiliteti i parë (CVE-2020-3811) lejon të anashkaloni verifikimin e adresës së emailit, ndërsa e dyta (CVE-2020-3812) çon në rrjedhjen e informacionit lokal. Në veçanti, e para e mohimit lejon anashkalimin e verifikimit të saktësisë së adresës, e cila përdoret në shfrytëzimin për të dërguar komandën (verifikimi nuk aktivizohet për adresat pa domain, si «localuser-;command;»). E dyta e mohimit mund të përdoret për të kontrolluar praninë e skedarëve dhe katalogëve në sistem, përfshirë ato që janë të qasshma vetëm për root (qmail-verify ekzekutohet me privilegje root), përmes një qasjeje të drejtpërdrejtë në trajtuesin lokal.

Për të anashkaluar problemin, Bernstein rekomandoi që proceset qmail të ekzekutoheshin me caktimin e një kufiri të përbashkët për kujtesën e aksesueshme («softlimit -m12345678»), dhe në këtë rast problemi bllokohet. Si një metodë alternative mbrojtjeje përmendet gjithashtu kufizimi i madhësisë maksimale të mesazheve të përpunuara përmes skedarit «control/databytes» (në mënyrë default nuk krijohet, me cilësime default qmail mbetet i cenueshëm). Për më tepër, «control/databytes» nuk mbron nga sulmet lokale nga përdoruesit e sistemit, pasi kufizimi merret parasysh vetëm në qmail-smtpd.

Problemi prek paketën netqmail, i përfshirë në depozitat Debian. Ky paketë ka një set patch-e të përgatitura që eliminojnë si dobësitë e vjetra të vitit 2005 (nëpërmjet shtimit në kodin e funksionit alloc() kufij të rreptë mbi kujtesën), ashtu si dhe problemet e reja në qmail-verify. Veçmas është përgatitur versioni i përditësuar i patch-it qmail-verify. Zhvilluesit dega notqmail kanë përgatitur patch-et e tyre për bllokimin e problemeve të vjetra, si dhe kanë nisur punën për të eliminuar çdo mbushje të mundshme të numrave në kod.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster