Zranitelnost Eximu umožňuje vzdálené spuštění kódu na serveru

V poštovním serveru Exim byla identifikována kritická zranitelnost (CVE-2026-45185), která umožňuje vzdálené spuštění kódu na serveru. Problém se projevuje od verze Exim 4.97 při sestavení s knihovnou GnuTLS („USE_GNUTLS=yes“) a byl opraven v Exim 4.99.3. Sestavení s OpenSSL a jinými knihovnami než GnuTLS nejsou ovlivněna.

Problém je způsoben přístupem k paměti typu „use-after-free“ v backendu GnuTLS a lze jej zneužít při přístupu k serverům, které podporují rozšíření „ESMTP CHUNKING“ a příkaz BDAT pro přenos částí těla zprávy namísto jednoho bloku pomocí příkazu DATA. K poškození paměti dochází, když klient iniciuje předčasné ukončení relace TLS pomocí příkazu close_notify při přenosu těla zprávy přes BDAT a poté odešle jeden nešifrovaný bajt v prostém textu přes stejné TCP připojení.

Po přijetí příkazu close_notify volá backend GnuTLS funkci pro ukončení relace TLS, která uvolní vyrovnávací paměti související s relací. Kvůli chybě v kódu backendu, i přes uvolnění vyrovnávací paměti TLS, obslužná rutina BDAT pokračuje v čtení dat ze streamu a volá funkci ungetc(). Pokud je to následováno nešifrovanými daty, vede to k zapsání jednoho bajtu do již uvolněné vyrovnávací paměti. Tento bajt poškozuje metadata alokátoru paměti haldy, která byla použita k provádění experimentů s cílem vytvořit exploit, který spouští libovolný kód na server.

Výzkumníci zpočátku vygenerovali částečně funkční exploit s využitím umělé inteligence, který umožňoval spuštění kódu, ale byl funkční pouze za omezených podmínek, na systémech s vypnutou ochranou ASLR a PIE a specifickou verzí knihovny libc. Poté se pokusili vytvořit exploit s lidskou asistencí, překonali některé obtíže a unikli adrese zásobníku, ale exploit nebyl dokončen před plánovaným datem zveřejnění zranitelnosti. Výzkumníci, kteří zranitelnost objevili, se domnívají, že asistenti umělé inteligence zatím nejsou schopni vytvářet exploity pro složité produkty, ale doufají, že v budoucnu budou jiní výzkumníci schopni dokončit svou práci a napsat plně funkční exploit.

Z hlavních distribucí se používají verze Eximu 4.97+. Debian 13, Ubuntu 24.04+, SUSE/openSUSE, Arch Linux, Alpský Linux 3.19+, ALT Linux p11, ROSA, Gentoo, OpenWRT, Fedora, EPEL (Exim není součástí standardního repozitáře RHEL) a FreeBSD. Výchozí sestavení je Exim s GnuTLS. Debian и Ubuntu, v jiných distribucích vyžaduje objasnění. Jako alternativní řešení můžete rozšíření CHUNKING zakázat pomocí nastavení chunking_advertise_hosts v konfiguračním souboru.

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster