Felfedték az Exim kritikus biztonsági résének részleteit

közzétett korrekciós elengedés Exim 4.92.2 a kritikus kiküszöbölésével sebezhetőségek (CVE-2019 15846-), amely az alapértelmezett konfigurációban egy root jogosultsággal rendelkező támadó általi távoli kódfuttatáshoz vezethet. A probléma csak akkor jelentkezik, ha a TLS-támogatás engedélyezve van, és egy speciálisan kialakított ügyféltanúsítvány vagy módosított érték SNI-nek való átadásával használják ki. Sebezhetőség azonosított szerző: Qualys.

probléma ajándék a kezelőben a karakterláncban lévő speciális karakterek elkerüléséhez (string_interpret_escape() karakterláncból.c) és az okozza, hogy a karakterlánc végén lévő '\' karakter a nullkarakter ('\0') előtt értelmeződik, és megkerüli azt. Meneküléskor a '\' sorozatot és az azt követő nulla sorvégi kódot a rendszer egyetlen karakterként kezeli, és a mutató a soron kívüli adatokra tolódik el, ami a sor folytatásaként lesz kezelve.

A string_interpret_escape()-t hívó kód a tényleges méret alapján lefoglal egy puffert a lefolyó számára, és a látható mutató a puffer határain kívül eső területre kerül. Ennek megfelelően, amikor megpróbálunk feldolgozni egy bemeneti karakterláncot, olyan helyzet áll elő, amikor a lefoglalt puffer határain kívül eső területről olvasunk adatokat, és egy nem megtisztított karakterlánc írási kísérlete a puffer határain túli íráshoz vezethet.

Az alapértelmezett konfigurációban a biztonsági rést úgy lehet kihasználni, hogy speciálisan erre a célra tervezett adatokat küldenek az SNI-nek, amikor biztonságos kapcsolatot létesítenek a szerverrel. A probléma kihasználható a peerdn értékek módosításával is az ügyféltanúsítvány-hitelesítéshez konfigurált konfigurációkban vagy tanúsítványok importálásakor. SNI-n és peerdn-en keresztüli támadás a kiadástól kezdve lehetséges Exim 4.80, amelyben a string_unprinting() függvényt használták a peerdn és az SNI tartalom kinyomtatására.

Az SNI-n keresztüli támadáshoz egy exploit prototípus készült, amely i386 és amd64 architektúrákon fut Glibc-cel rendelkező Linux rendszereken. Az exploit adatfedést használ a kupacterületen, ami felülírja azt a memóriát, amelyben a naplófájl neve van tárolva. A fájlnév helyére "/../../../../../../../../etc/passwd" lép. Ezt követően a feladó címét tartalmazó változó felülírásra kerül, amelyet először a naplóba mentünk, ami lehetővé teszi új felhasználó felvételét a rendszerbe.

Csomagfrissítések a disztribúciók által kiadott sebezhetőségi javításokkal Debian, Ubuntu, Fedora, SUSE/openSUSE и FreeBSD. RHEL és CentOS probléma nem fogékony, mivel az Exim nem szerepel a szokásos csomagtárukban (in EPEL обновление már alakított, de egyelőre nincs elhelyezve nyilvános adattárba). Az Exim kódban a probléma egyvonalas megoldással van megoldva tapasz, amely letiltja a fordított perjel kilépő hatását, ha az a sor végén van.

A biztonsági rés blokkolásának elkerülő megoldásaként letilthatja a TLS-támogatást vagy hozzáadhat
ACL szakasz „acl_smtp_mail”:

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

Forrás: opennet.ru

Hozzászólás