Fjarnýtanleg varnarleysi á qmail póstþjóninum

Öryggisrannsakendur frá Qualys sýndi tækifæri hagnýtingu veikleika í qmail póstþjóninum, frægur aftur árið 2005 (CVE-2005-1513), en var óuppfært vegna þess að höfundur qmail hélt því fram að það væri óraunhæft að búa til virka hagnýtingu sem hægt væri að nota til að ráðast á kerfi í sjálfgefna uppsetningu. Qualys tókst að undirbúa hagnýtingu sem hrekur þessa forsendu og gerir manni kleift að hefja keyrslu á ytri kóða á þjóninum með því að senda sérhönnuð skilaboð.

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 (CVE-2020-3811) gerir þér kleift að komast framhjá staðfestingu netfangs, og annað (CVE-2020-3812) leiðir til leka staðbundinna upplýsinga. Sérstaklega gerir fyrsta varnarleysið þér kleift að komast framhjá sannprófun á réttmæti heimilisfangsins sem notað var í hagnýtingu til að senda skipun (staðfestingin virkar ekki fyrir heimilisföng án léns, svo sem „localuser-;command;“). Seinni varnarleysið er hægt að nota til að athuga hvort skrár og möppur séu á kerfinu, þar á meðal þær sem aðeins eru aðgengilegar fyrir rót (qmail-verify keyrir með rótarréttindum), með beinu símtali til staðbundins meðhöndlunar.

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 netqmail, innifalinn í Debian geymslunum. Búið er að útbúa sett af plástra fyrir þennan pakka, sem útrýma bæði gömlum veikleikum frá 2005 (með því að bæta harðminni takmörkunum við alloc() virknikóðann) og ný vandamál í qmail-verify. Sér undirbúinn uppfærð útgáfa af qmail-verify plástrinum. Hönnuðir útibú notqmail útbúið sína eigin plástra til að loka fyrir gömul vandamál, og byrjuðu einnig að vinna að því að útrýma öllum mögulegum heiltöluflæði í kóðanum.

Heimild: opennet.ru

Bæta við athugasemd