Öryggisrannsakendur frá Qualys
Vandamálið stafar af heiltöluflæði í stralloc_readyplus() fallinu, sem getur komið upp þegar unnið er með mjög stór skilaboð. Notkun krafðist 64-bita kerfis með meira en 4GB af sýndarminni. Þegar varnarleysið var upphaflega greind árið 2005, hélt Daniel J. Bernstein því fram að forsendan í kóðanum að stærð úthlutað fylkis sé alltaf innan 32-bita gildis byggist á því að enginn útvegar gígabætum af minni í hvert ferli. Undanfarin 15 ár hafa 64 bita kerfi á netþjónum leyst 32 bita kerfi af hólmi og magn minnis sem fylgir og netbandbreidd hefur aukist verulega.
Umsjónarmenn qmail pakkans tóku mið af athugasemd Bernsteins og takmörkuðu tiltækt minni þegar qmail-smtpd ferlið var hafið (til dæmis, í Debian 10 eru mörkin sett á 7MB). En verkfræðingar frá Qualys komust að því að þetta er ekki nóg og auk qmail-smtpd er hægt að framkvæma fjarárás á qmail-local ferlinu, sem var ótakmarkað í öllum prófuðum pakka. Til sönnunar var útbúin frumgerð sem hentaði til að ráðast á Debian pakkann með qmail í sjálfgefna stillingu.
Til að skipuleggja keyrslu á fjarkóða meðan á árás stendur þarf þjónninn 4GB af lausu plássi og 8GB af vinnsluminni.
The exploit gerir þér kleift að keyra hvaða skel skipanir sem er með réttindum hvers notanda í kerfinu, nema fyrir rótar- og kerfisnotendur sem hafa ekki sína eigin undirmöppu í "/home" möppunni (qmail-local ferlið er ræst með réttindin staðbundins notanda sem afhending fer fram til).
Árásin er framkvæmd
með því að senda mjög stór póstskilaboð, þar á meðal nokkrar hauslínur, sem eru um það bil 4GB og 576MB. Að vinna úr slíkum streng í qmail-local leiðir til heiltalnaflæðis þegar reynt er að koma skilaboðum til staðbundins notanda. Heiltöluflæði leiðir síðan til yfirflæðis biðminni þegar gögn eru afrituð og möguleika á að skrifa yfir minnissíður með libc kóða. Með því að hagræða útliti sendra gagna er einnig hægt að endurskrifa heimilisfang „opinn()“ aðgerðarinnar og skipta því út fyrir heimilisfang „system()“ aðgerðarinnar.
Næst, í því ferli að kalla qmesearch() í qmail-local, er skráin „.qmail-extension“ opnuð í gegnum open() aðgerðina, sem leiðir til raunverulegrar framkvæmdar aðgerðarinnar
system(".qmail-viðbót"). En þar sem „viðbót“ hluti skráarinnar er myndaður á grundvelli heimilisfangs viðtakandans (til dæmis „localuser-extension@localdomain“), geta árásarmenn séð fyrir því að skipunin sé send til að keyra með því að tilgreina notandann „localuser-;skipun“ ;@localdomain“ sem viðtakanda skilaboðanna.
Við kóðagreininguna komu einnig tveir veikleikar í ljós í viðbótar qmail-verify plástrinum, sem er hluti af pakkanum fyrir Debian. Fyrsta varnarleysi (
Til að vinna í kringum vandamálið mælti Bernstein með því að keyra qmail ferli með heildartakmörkum á tiltækt minni ("softlimit -m12345678"), en þá er vandamálið lokað. Sem önnur verndaraðferð er einnig minnst á að takmarka hámarksstærð unninna skilaboða í gegnum „control/databytes“ skrána (sjálfgefið er hún ekki búin til með sjálfgefnum stillingum qmail er enn viðkvæmt). Að auki verndar „control/databytes“ ekki gegn staðbundnum árásum frá kerfisnotendum, þar sem takmörkin eru aðeins tekin með í reikninginn af qmail-smtpd.
Vandamálið hefur áhrif á pakkann
Heimild: opennet.ru