Az Exim levelezőszerverben kritikus biztonsági rés (CVE-2026-45185) kimutatható, amely lehetővé teszi a távoli kódvégrehajtást a szerveren. A probléma az Exim 4.97 verziótól kezdődően jelenik meg, amelyet a GnuTLS könyvtárral való fordítással használnak („USE_GNUTLS=yes”), és az Exim 4.99.3 verzióban orvosolták. Az OpenSSL és egyéb könyvtárakkal készült verziók nem érintettek a biztonsági rés által.
A probléma az előzőleg felszabadított memória (use-after-free) GnuTLS háttérben való hivatkozásából ered, és kihasználható azoknál a szervereknél, amelyek az „ESMTP CHUNKING” kiterjesztést és a BDAT parancsot támogatják a levél törzsének darabokban való továbbításához a DATA parancs használata helyett. A folyamat memóriatartalmának sérülése akkor következik be, amikor az ügyfél a close_notify parancs segítségével idő előtt lezárja a TLS munkamenetet a BDAT-on keresztül történő üzenetátadás során, és ezt követően egy titkosítatlan bájtot küld ugyanabban a TCP kapcsolatban.
A close_notify parancs megérkezésekor a GnuTLS háttérben a TLS-munkamenet megszakításáért felelős funkció hívódik meg, amely felszabadítja a munkamenettel kapcsolatos puffereket. A háttérkódban lévő hiba miatt, a TLS-puffer felszabadítása ellenére a BDAT feldolgozója továbbra is olvassa az adatokat a folyamból, és meghívja az ungetc() funkciót, amely során a titkosítatlan adatok küldésekor egy bájtot ír be az már felszabadított pufferbe. Ez a bájt megsérti a kupac (heap) memóriakezelőjének metadatáit, ami alapot adott a kódfuttatására alkalmas exploit kifejlesztéséhez. szerveren.
Kezdetben a kutatók egy részben működő exploitot generáltak mesterséges intelligencia segítségével, amely lehetővé tette a kód végrehajtását, de csak kontrollált környezetben működött, ASLR és PIE védelem kiiktatott rendszereken, és egy bizonyos libc verzióval. Ezt követően megpróbáltak egy emberi részvétel mellett végrehajtani egy exploit elkészítését, ahol néhány nehézséget sikerült leküzdeni, és megvalósították a stack címének kiszivárgását, de a tervezett sebezhetőségi bejelentés határidejéig az exploitot nem sikerült befejezni. A kutatók véleménye szerint a mesterséges intelligencia által támogatott eszközök még nem képesek összetett termékek exploitjait létrehozni, de remélik, hogy a jövőben a többi kutató képes lesz befejezni a munkájukat és egy teljesen működő exploitot írni.
A nagyobb disztribúciók közül az Exim 4.97+ verziója megtalálható a Debian 13, az Ubuntu 24.04+, a SUSE/openSUSE, az Arch Linux, az Alpine Linux 3.19+, az ALT Linux p11, a ROSA, a Gentoo, az OpenWRT, a Fedora és az EPEL (az Exim nem része a RHEL alapértelmezett repójának) és a FreeBSD rendszerekben. Az Exim GnuTLS-szel készült verziója alapértelmezett a Debian és az Ubuntu rendszerekben, más disztribúcióknál ez megerősítést igényel. A sérülékenység blokkolására alternatív megoldásként a CHUNKING kiterjesztés letiltható a chunking_advertise_hosts beállítás konfigurációs fájlban történő módosításával.
Forrás: opennet.ru
