V poštovom serveri Exim bola identifikovaná kritická zraniteľnosť (CVE-2026-45185), ktorá umožňuje vzdialené spustenie kódu na serveri. Problém sa prejavuje od verzie Exim 4.97 pri zostavení s knižnicou GnuTLS („USE_GNUTLS=yes“) a bol opravený v Exim 4.99.3. Zostavenia s OpenSSL a inými knižnicami okrem GnuTLS nie sú ovplyvnené.
Problém je spôsobený prístupom k pamäti typu „use-after-free“ v backende GnuTLS a možno ho zneužiť pri prístupe k serverom, ktoré podporujú rozšírenie „ESMTP CHUNKING“ a príkaz BDAT na prenos častí tela správy namiesto jedného bloku pomocou príkazu DATA. K poškodeniu pamäte dochádza, keď klient iniciuje predčasné ukončenie relácie TLS pomocou príkazu close_notify počas prenosu tela správy cez BDAT a potom odošle jeden nešifrovaný bajt v otvorenom texte cez to isté TCP pripojenie.
Po prijatí príkazu close_notify backend GnuTLS zavolá funkciu ukončenia relácie TLS, ktorá uvoľní vyrovnávacie pamäte súvisiace s reláciou. Kvôli chybe v kóde backendu, napriek uvoľneniu vyrovnávacej pamäte TLS, obslužný program BDAT pokračuje v čítaní údajov zo streamu a volá funkciu ungetc(). Toto, keď nasledujú nešifrované údaje, vedie k zapísaniu jedného bajtu do už uvoľnenej vyrovnávacej pamäte. Tento bajt poškodí metadáta alokátora pamäte haldy, ktoré sa použili na vykonávanie experimentov na vytvorenie exploitu, ktorý spúšťa ľubovoľný kód na server.
Výskumníci spočiatku vygenerovali čiastočne funkčný exploit pomocou umelej inteligencie, ktorý umožňoval spustenie kódu, ale bol funkčný iba za obmedzených podmienok, na systémoch s vypnutou ochranou ASLR a PIE a so špecifickou verziou knižnice libc. Následne sa pokúsili vytvoriť exploit s ľudskou asistenciou, pričom prekonali niektoré ťažkosti a unikli adrese zásobníka, ale exploit nebol dokončený pred plánovaným dátumom zverejnenia zraniteľnosti. Výskumníci, ktorí objavili zraniteľnosť, sa domnievajú, že asistenti umelej inteligencie zatiaľ nie sú schopní vytvárať exploity pre zložité produkty, ale dúfajú, že v budúcnosti budú iní výskumníci schopní dokončiť svoju prácu a napísať plne funkčný exploit.
Z hlavných distribúcií sa používajú verzie Eximu 4.97+ Debian 13, Ubuntu 24.04+, SUSE/openSUSE, Arch Linux, Alpský Linux 3.19+, alternatíva Linux p11, ROSA, Gentoo, OpenWRT, Fedora, EPEL (Exim nie je súčasťou štandardného RHEL repozitára) a FreeBSD. Exim s GnuTLS je predvolená zostava. Debian и Ubuntu, v iných distribúciách vyžaduje objasnenie. Ako riešenie môžete zakázať rozšírenie CHUNKING pomocou nastavenia chunking_advertise_hosts v konfiguračnom súbore.
Zdroj: opennet.ru
