Byly odhaleny podrobnosti o kritické zranitelnosti v Eximu

zveřejněno opravné uvolnění Exim 4.92.2 s eliminací kritických zranitelnosti (CVE-2019-15846), což ve výchozí konfiguraci může vést ke vzdálenému spuštění kódu útočníkem s právy root. Problém se objeví pouze tehdy, když je povolena podpora TLS a je zneužita předáním speciálně navrženého klientského certifikátu nebo upravené hodnoty SNI. Zranitelnost identifikované od společnosti Qualys.

problém je přítomen v obslužné rutině pro escapování speciálních znaků v řetězci (string_interpret_escape() z string.c) a je způsobena tím, že znak '\' na konci řetězce je interpretován před znakem null ('\0') a je escapován. Při escapování jsou sekvence '\' a následující prázdný kód konce řádku považovány za jeden znak a ukazatel je posunut na data mimo řádek, která jsou považována za pokračování řádku.

Kód volající string_interpret_escape() alokuje vyrovnávací paměť pro odčerpávání na základě skutečné velikosti a vystavený ukazatel skončí v oblasti mimo hranice vyrovnávací paměti. V souladu s tím při pokusu o zpracování vstupního řetězce nastává situace při čtení dat z oblasti mimo hranice přidělené vyrovnávací paměti a pokus o zápis neupraveného řetězce může vést k zápisu za hranice vyrovnávací paměti.

Ve výchozí konfiguraci lze tuto chybu zabezpečení zneužít odesláním speciálně navržených dat do SNI při navazování zabezpečeného připojení k serveru. Problém lze také zneužít úpravou hodnot peerdn v konfiguracích nakonfigurovaných pro ověřování klientského certifikátu nebo při importu certifikátů. Útok přes SNI a peerdn je možný počínaje uvolněním Exim 4.80, ve kterém byla funkce string_unprinting() použita k vytištění obsahu peerdn a SNI.

Byl připraven exploit prototyp pro útok přes SNI běžící na architekturách i386 a amd64 na systémech Linux s Glibc. Exploit využívá překrytí dat v oblasti haldy, což vede k přepsání paměti, ve které je uložen název souboru protokolu. Název souboru je nahrazen „/../../../../../../../../etc/passwd“. Dále se přepíše proměnná s adresou odesílatele, která se nejprve uloží do logu, což umožňuje přidat nového uživatele do systému.

Aktualizace balíčků s opravami zranitelnosti vydanými distribucemi Debian, ubuntu, Fedora, SUSE/openSUSE и FreeBSD. Problém RHEL a CentOS není náchylný, protože Exim není součástí jejich běžného úložiště balíčků (in TEPLÝ обновление již vytvořený, ale zatím není umístěn do veřejného úložiště). V kódu Exim je problém vyřešen jednolinkou náplast, která deaktivuje escapování zpětného lomítka, pokud je na konci řádku.

Jako řešení k zablokování této chyby zabezpečení můžete zakázat podporu TLS nebo přidat
Sekce ACL „acl_smtp_mail“:

podmínka odmítnutí = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
podmínka odmítnutí = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}

Zdroj: opennet.ru

Přidat komentář