Boli odhalené podrobnosti o kritickej zraniteľnosti v Exime

publikovaný opravné uvoľnenie Exim 4.92.2 s odstránením kritických zraniteľnosti (CVE-2019 15846,), čo v predvolenej konfigurácii môže viesť k vzdialenému spusteniu kódu útočníkom s oprávneniami root. Problém sa objaví iba vtedy, keď je povolená podpora TLS a je zneužitá odovzdaním špeciálne navrhnutého klientskeho certifikátu alebo upravenej hodnoty SNI. Zraniteľnosť identifikované od spoločnosti Qualys.

problém je prítomný v obslužnom programe na escapovanie špeciálnych znakov v reťazci (string_interpret_escape() from string.c) a je spôsobené tým, že znak '\' na konci reťazca je interpretovaný pred nulovým znakom ('\0') a escapuje ho. Pri escapovaní sa sekvencia '\' a nasledujúci nulový kód konca riadka považujú za jeden znak a ukazovateľ sa posunie na údaje mimo riadku, ktoré sa považujú za pokračovanie riadku.

Kód volajúci string_interpret_escape() alokuje vyrovnávaciu pamäť pre odtok na základe skutočnej veľkosti a vystavený ukazovateľ skončí v oblasti mimo hraníc vyrovnávacej pamäte. V súlade s tým pri pokuse o spracovanie vstupného reťazca nastáva situácia pri čítaní údajov z oblasti mimo hraníc pridelenej vyrovnávacej pamäte a pokus o zápis neuvedeného reťazca môže viesť k zápisu za hranice vyrovnávacej pamäte.

V predvolenej konfigurácii možno túto zraniteľnosť zneužiť odoslaním špeciálne navrhnutých údajov do SNI pri vytváraní zabezpečeného pripojenia k serveru. Problém je možné zneužiť aj úpravou hodnôt peerdn v konfiguráciách nakonfigurovaných na overenie certifikátu klienta alebo pri importe certifikátov. Útok cez SNI a peerdn je možný počnúc uvoľnením Exim 4.80, v ktorom bola funkcia string_unprinting() použitá na odtlačenie obsahu peerdn a SNI.

Na útok cez SNI bol pripravený prototyp exploitu, ktorý beží na architektúrach i386 a amd64 na systémoch Linux s Glibc. Využívanie využíva prekrytie údajov v oblasti haldy, čo vedie k prepísaniu pamäte, v ktorej je uložený názov súboru denníka. Názov súboru sa nahradí „/../../../../../../../../etc/passwd“. Ďalej sa prepíše premenná s adresou odosielateľa, ktorá sa najskôr uloží do logu, čo umožňuje pridanie nového užívateľa do systému.

Aktualizácie balíkov s opravami zraniteľností vydané distribúciami debian, ubuntu, Fedora, SUSE/openSUSE и FreeBSD. Problém RHEL a CentOS nie je náchylný, pretože Exim nie je súčasťou ich bežného úložiska balíkov (v TEPLÝ обновление tvorené, ale zatiaľ neumiestnené na verejné úložisko). V kóde Exim je problém vyriešený jednoradovým náplasť, ktorá deaktivuje escapovanie spätnej lomky, ak je na konci riadku.

Ako riešenie na zablokovanie tejto chyby zabezpečenia môžete vypnúť alebo pridať podporu TLS
Sekcia ACL „acl_smtp_mail“:

podmienka odmietnutia = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
podmienka odmietnutia = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Zdroj: opennet.ru

Pridať komentár