Op ôfstân eksploitbere kwetsberens yn 'e qmail-posttsjinner

Feiligens ûndersikers út Qualys toande kâns eksploitaasje kwetsberens yn 'e qmail-posttsjinner, ferneamd werom yn 2005 (CVE-2005-1513), mar bleau unpatched omdat de skriuwer fan qmail bewearde dat it wie ûnrealistysk in meitsje in wurkjende eksploitaasje dat koe wurde brûkt om oanfallen systemen yn de standert konfiguraasje. Qualys koe tariede in eksploitaasje dy't wjerlein dizze oanname en makket it mooglik om te begjinnen op ôfstân koade útfiering op de tsjinner troch it stjoeren fan in spesjaal ûntwurpen berjocht.

It probleem wurdt feroarsake troch in hiel getal oerstreaming yn de stralloc_readyplus () funksje, dat kin foarkomme by it ferwurkjen fan in hiel grut berjocht. Operaasje easke in 64-bit systeem mei mear as 4GB fan firtuele ûnthâld. Doe't de kwetsberens oarspronklik waard analysearre yn 2005, stelde Daniel J. Bernstein dat de oanname yn 'e koade dat de grutte fan' e tawiisde array altyd binnen 32-bit wearde is basearre op it feit dat gjinien jout gigabytes fan ûnthâld oan elk proses. Yn 'e ôfrûne 15 jier hawwe 64-bit systemen op tsjinners 32-bit systemen ferfongen, en it bedrach fan levere ûnthâld en netwurkbânbreedte is dramatysk tanommen.

De ûnderhâlders fan it qmail-pakket namen de notysje fan Bernstein yn rekken en beheine it beskikbere ûnthâld by it starten fan it qmail-smtpd-proses (bygelyks Debian 10 stelt in limyt fan 7MB yn). Mar yngenieurs fan Qualys fûnen dat dit net genôch is en, neist qmail-smtpd, kin in oanfal op ôfstân útfierd wurde op it qmail-lokale proses, dat ûnbeheind bleau yn alle testen pakketten. As bewiis waard in eksploitaasjeprototype taret, geskikt foar it oanfallen fan it Debian-pakket mei qmail yn 'e standertkonfiguraasje.
Om útfiering fan koade op ôfstân te organisearjen tidens in oanfal, fereasket de tsjinner 4 GB frije skiifromte en 8 GB RAM.
De eksploitaasje lit jo alle shell-kommando's útfiere mei de rjochten fan elke brûker yn it systeem, útsein foar root- en systeembrûkers dy't gjin eigen submap hawwe yn 'e map "/ home" (it qmail-lokale proses wurdt lansearre mei de rjochten fan de lokale brûker oan wa't levering wurdt útfierd).

De oanfal wurdt útfierd
troch it ferstjoeren fan in hiel grut mail berjocht, ynklusyf ferskate koptekst rigels, mjitten likernôch 4GB en 576MB. It ferwurkjen fan sa'n tekenrige yn qmail-local resultearret yn in heule getal oerstreaming as jo besykje in berjocht te leverjen oan de lokale brûker. In hiele getal oerstreaming dan liedt ta in buffer oerstreaming by it kopiearjen fan gegevens en de mooglikheid fan it oerskriuwen fan ûnthâld siden mei libc koade. Troch it manipulearjen fan de yndieling fan 'e oerdroegen gegevens, is it ek mooglik om it adres fan' e funksje "iepen ()" opnij te skriuwen, en ferfangt it mei it adres fan 'e funksje "systeem ()".

Folgjende, yn it proses fan it oproppen fan qmesearch () yn qmail-local, wurdt de triem ".qmail-útwreiding" iepene troch de funksje iepen (), wat liedt ta de eigentlike útfiering fan 'e funksje
system(".qmail-extension"). Mar om't it "útwreiding" diel fan it bestân wurdt oanmakke op basis fan it adres fan de ûntfanger (bygelyks "localuser-extension@localdomain"), kinne oanfallers regelje dat it kommando ferstjoerd wurdt om te rinnen troch de brûker "localuser-;kommando oan te jaan ;@localdomain" as de ûntfanger fan it berjocht.

Tidens de koade-analyze waarden ek twa kwetsberens identifisearre yn 'e ekstra qmail-ferify patch, dy't diel útmakket fan it pakket foar Debian. Earste kwetsberens (CVE-2020-3811) lit jo de ferifikaasje fan e-mailadres omgean, en de twadde (CVE-2020-3812) liedt ta lekken fan lokale ynformaasje. Benammen de earste kwetsberens kinne jo de ferifikaasje fan 'e krektens fan it adres dat brûkt wurdt yn' e eksploitaasje om in kommando te stjoeren omgean (de ferifikaasje wurket net foar adressen sûnder in domein, lykas "localuser-;command;"). De twadde kwetsberens kin brûkt wurde om te kontrolearjen de oanwêzigens fan triemmen en mappen op it systeem, ynklusyf dy tagonklik allinne foar root (qmail-ferifiearje rint mei root rjochten), troch in direkte oprop nei de lokale handler.

Om it probleem om te gean, advisearre Bernstein om qmail-prosessen te rinnen mei in totale limyt op beskikber ûnthâld ("softlimit -m12345678"), yn dat gefal wurdt it probleem blokkearre. As alternatyf metoade fan beskerming, beheinen fan de maksimale grutte fan it ferwurke berjocht fia de "control / databytes" triem wurdt ek neamd (standert is it net makke mei standert ynstellings qmail bliuwt kwetsber). Derneist, "kontrôle / databytes" net beskermje tsjin lokale oanfallen fan systeem brûkers, sûnt de limyt wurdt allinnich rekken holden troch qmail-smtpd.

It probleem hat ynfloed op it pakket netqmail, opnommen yn 'e Debian-repositories. In set fan patches is taret foar dit pakket, elimineren sawol âlde kwetsberens út 2005 (troch it tafoegjen fan hurde ûnthâld grinzen oan de alloc () funksje koade) en nije problemen yn qmail-ferifiearje. Apart taret bywurke ferzje fan de qmail-ferifiearje patch. Untwikkelders tûken notqmail har eigen patches tariede om âlde problemen te blokkearjen, en begon ek te wurkjen om alle mooglike oerstreamingen fan heule getal yn 'e koade te eliminearjen.

Boarne: opennet.ru

Add a comment