problém
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
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
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