A Qualys biztonsági kutatói kimutatták a kihasználás lehetősége sebezhetőség a qmail levelező kiszolgálón, 2005 óta ismert (CVE-2005-1513), de azóta nincs javítva A qmail azt állította, hogy irreális egy működő kizsákmányolást létrehozni amelyek felhasználhatók az alapértelmezett konfigurációban lévő rendszerek megtámadására.
De úgy tűnik, hogy a qmail fejlesztők tévedtek, mivel Qualys-nak sikerült előkészítenie egy kihasználást amely cáfolja ezt a feltételezést és lehetővé teszi a távoli kódfuttatás elindítását a szerveren egy speciálisan kialakított üzenet küldésével.
A problémát a stralloc_readyplus () függvény túlcsordulása okozza, amely egy nagyon nagy üzenet feldolgozása során fordulhat elő. A művelethez 64 bites rendszerre volt szükség 4 GB-nál nagyobb virtuális memória kapacitással.
A 2005-ös kezdeti sérülékenységi elemzés során Daniel Bernstein azzal érvelt, hogy a kódban szereplő feltételezés, miszerint a lefoglalt tömb mérete mindig megfelel egy 32 bites értéknek, azon a tényen alapul, hogy senki sem ad gigabájt memóriát minden folyamathoz .
Az elmúlt 15 évben a kiszolgálók 64 bites rendszerei felváltották a 32 bites rendszereket, a rendelkezésre álló memória mennyisége és a hálózati sávszélesség drámaian megnőtt.
A qmail-t kísérő csomagok figyelembe vették Bernstein megjegyzését és a qmail-smtpd folyamat indításakor korlátozták a rendelkezésre álló memóriát (például a Debian 10-en a korlátot 7 MB-ban határozták meg).
De a A Qualys mérnökei felfedezték, hogy ez nem elég és a qmail-smtpd mellett távoli támadás is végrehajtható a qmail-local folyamat ellen, amely korlátlan maradt az összes tesztelt csomagon.
Bizonyítékként egy prototípus került felhasználásra, amely alkalmas a Debian által szállított csomag megtámadására az alapértelmezett konfigurációban található qmail segítségével. Távoli kódfuttatás megszervezéséhez támadás során, a szerverhez 4 GB szabad lemezterületre és 8 GB RAM-ra van szükség.
A kihasználás lehetővé teszi bármely parancs végrehajtását shell a rendszer bármely felhasználójának jogaival, kivéve a root és a rendszerhasználókat, akiknek nincs saját alkönyvtáruk a "/ home" könyvtárban
A támadást egy nagyon nagy e-mail küldésével hajtják végre, amely több sort tartalmaz a fejlécben, körülbelül 4 GB és 576 MB méretű.
Amikor az említett sort qmail-local-ban dolgozzuk fel egész szám túlcsordulás történik, amikor megpróbál üzenetet átadni egy helyi felhasználónak. Ezután egy egész szám túlcsordulás puffer túlcsorduláshoz vezet az adatok másolásakor és a memóriaoldalak libc kóddal való felülírásának lehetőségével.
A qmesearch () qmail-local meghívása során megnyílik az ".qmail-extension" fájl az open () függvényen keresztül, ami a rendszer tényleges elindításához vezet (". Qmail-extension" ). De mivel a "kiterjesztés" fájl egy része a címzett címe alapján képződik (például "localuser-extension @ localdomain"), a támadók a "localuser-; parancs; @localdomain »mint az üzenet címzettje.
A kód elemzése két biztonsági rést is feltárt a kiegészítő javításban a qmail ellenőrzése, amely a Debian csomag része.
- Az első biztonsági rés (CVE-2020-3811) lehetővé teszi az e-mail címek ellenőrzésének megkerülését, a második (CVE-2020-3812) helyi információszivárgáshoz vezet.
- A második biztonsági rés felhasználható a fájlok és könyvtárak jelenlétének ellenőrzésére a rendszeren, beleértve azokat is, amelyek csak a root számára érhetők el (a qmail-ellenőrzés root jogosultságokkal kezdődik) a helyi illesztőprogram közvetlen hívása révén.
Ehhez a csomaghoz számos javítást készítettek, kiküszöbölve a régi biztonsági réseket 2005-től azáltal, hogy merevlemez-korlátokat adtak hozzá az allokáció () funkciókódhoz, és új problémákat jelentettek a qmailben.
Ezenkívül külön elkészítették a qmail javítás frissített változatát. A notqmail verzió fejlesztői előkészítették javításaikat a régi problémák blokkolására, és a kód összes lehetséges egész számának túlcsordulásának kiküszöbölésén is dolgoztak.
forrás: https://www.openwall.com/