Na poštovom serveri Exim bola zistená kritická zraniteľnosť (CVE-2026-45185), ktorá umožňuje vzdialené vykonanie kódu na serveri. Problém sa prejavuje od vetvy Exim 4.97 pri zostavení s knižnicou GnuTLS („USE_GNUTLS=yes“) a bol odstránený v vydaní Exim 4.99.3. Zostavenia s OpenSSL a inými knižnicami, odlišnými od GnuTLS, zraniteľnosť neovplyvňujú.
Problém je spôsobený prístupom k už uvoľnenej pamäti (use-after-free) v backendovom GnuTLS a môže byť zneužitý pri prístupe k serverom, ktoré podporujú rozšírenie „ESMTP CHUNKING“ a príkaz BDAT na prenos telá správy po častiach namiesto odosielania ako nedeliteľného bloku pomocou príkazu DATA. Poškodenie obsahu pamäte procesu nastáva pri iniciovaní predčasného ukončenia relácie TLS klientom pomocou príkazu close_notify počas prenosu tela správy cez BDAT a následného odoslania jedného bajtu nezakódovaného v otvorenej forme v tom istom TCP spojení.
Po prijatí príkazu close_notify v backendovom GnuTLS sa volá funkcia prerušenia TLS relácie, ktorá uvoľňuje súvisiace buffre so reláciou. V dôsledku chyby v kóde backendu napriek uvoľneniu TLS buffra spracovateľ BDAT pokračuje v čítaní dát z prúdu a volá funkciu ungetc(), čo pri odoslaní potom nezakódovaných dát vedie k zapísaniu jedného bajtu do už uvoľneného buffra. Tento bajt poškodzuje metadata alokátora pamäte v hromade (heap), čo bolo použité na vykonanie experimentov na vytvorenie exploitov, ktoré vykonávajú ľubovoľný kód na. serveri.
Na začiatku vedci vygenerovali čiastočne funkčný exploit pomocou AI, ktorý umožnil vykonanie kódu, ale bol funkčný iba v skleníkových podmienkach, na systémoch s vypnutou ochranou ASLR a PIE a určitým verziou knižnice libc. Následne sa pokúsili o vytvorenie exploitu za účasti človeka, v ktorom sa podarilo prekonať niektoré ťažkosti a dosiahnuť únik adresy zásobníka, avšak do plánovaného dátumu zverejnenia informácií o zraniteľnosti nebol exploit dokončený. Podľa názorov vedcov, ktorí zraniteľnosť odhalili, AI asistenti ešte nie sú schopní vytvárať exploity pre zložité produkty, ale dúfajú, že v budúcnosti iní vedci budú schopní dokončiť ich prácu a napísať plne funkčný exploit.
Väčšie distribúcie používa Exim 4.97+ vo svojich verziách v Debian 13, Ubuntu 24.04+, SUSE/openSUSE, Arch Linux, Alpine Linux 3.19+, ALT Linux p11, ROSA, Gentoo, OpenWRT, Fedora, EPEL (exim nie je súčasťou štandardného repozitára RHEL) a FreeBSD. Sestava Exim s GnuTLS sa predvolene používa v Debian a Ubuntu, v iných distribúciách je potrebné objasniť. Ako obchádzku blokovania zraniteľnosti je možné vypnúť rozšírenie CHUNKING pomocou nastavenia chunking_advertise_hosts v konfiguračnom súbore.
Zdroj: opennet.ru
