A kritikus sebezhetőség részletei felfedve az Exim-ben

Megjelent javító kiadás Exim 4.92.2 kritikai hiba kijavítása sebezhetőségek (CVE-2019-15846), amely az alapértelmezett konfigurációban távoli kódfuttatáshoz vezethet, ha a támadó root jogosultságokkal rendelkezik. A probléma csak TLS támogatása esetén jelentkezik, és egy speciálisan kialakított kliens tanúsítvány vagy a SNI módosított értéke átküldésével kihasználható. A sérülékenység identified a Qualys cég által.

Probléma már 2016 óta jelen van (lehet, hogy a probléma kihasználásának feltételei csak egyes más nemrégiben történt változások után jelentkeztek). a speciális karakterek védelmét végző kezelőben (string_interpret_escape() a string.c fájlban) és az okozza, hogy a '\' karakter a sor végén a null karakter ('\0') előtt kerül értelmezésre, és kioltja azt. A '\' karakter és a ezutáni null befejező kód együtt egy karakterként kerül feldolgozásra, és a mutató elmozdul a sor határain túli adatokra, amelyeket a sor folytatásaként kezelnek.

A string_interpret_escape() hívását generáló kód a tényleges méret alapján foglal pufferhelyet, és a beállított mutató a puffer határain kívülre kerül. Ennek megfelelően, amikor a bemeneti sor feldolgozására kerül sor, a megadott területről történik az adatolvasás, míg a dekódolt sorra írás kísérlete pufferhatáron kívüli írást eredményezhet.

Alapértelmezett konfigurációban a sérülékenység a SNI-n keresztül történő kifejezetten kialakított adatok átküldésével kihasználható, amikor védett kapcsolatot létesítünk a szerverhez. A probléma szintén kihasználható a peerdn értékek módosításával olyan konfigurációk esetén, amelyeket kliens tanúsítvány alapú hitelesítésre állítottak be, vagy tanúsítványok importálásakor. A SNI-n és a peerdn-en keresztüli támadások az Exim 4.80 megjelenésétől kezdődően lehetségesek. Exim 4.80, ahol a string_unprinting() funkciót alkalmazták a peerdn és SNI tartalmának dekódolására.

A SNI-n keresztüli támadáshoz prototípus exploiter készült, amely az i386 és amd64 architektúrákon működik Linux rendszerek alatt Glibc-vel. Az exploit a memória felülírását eredményező adatátfedést használja azokon a területeken, ahol a naplófájl neve van tárolva. A fájl neve felülíródik „/../../../../../../../../../../etc/passwd” értékkel. Ezt követően újraírja a küldő címének tárolt cím változóját, amely először kerül naplózásra, ez lehetővé teszi egy új felhasználó hozzáadását a rendszerhez.

A sérülékenységet javító csomagfrissítések a disztribúciók által kiadásra kerültek Debian, Ubuntu, Fedora, SUSE/openSUSE és FreeBSD. A RHEL és a CentOS nem érintett a problémában, mivel az Exim nem szerepel a hivatalos csomagrepójában (szükség esetén az, mivel az Exim nem része a hivatalos csomagok tárolójának (a EPEL frissítés már formálva, de még nem került be. a nyilvános tárolóba). Az Exim kódban a probléma egy sorra csökkentett kóddal orvosolható patch, amely letiltja a visszafejtő visszafelé per jel hatását, ha az a sor végén található.

Az TLS támogatás letiltásával, vagy a következő, az ACL szakaszba való hozzáadásával megkerülheti a sebezhetőséget:
acl_smtp_mail szakasz:

megtiltani feltétel = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
megtiltani feltétel = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster