O vulnerabilitate critică a fost descoperită în serverul de e-mail Exim (CVE-2026-45185), ce permite executarea codului la distanță pe server. Problema apare începând cu ramura Exim 4.97, compilată cu biblioteca GnuTLS ("USE_GNUTLS=yes"), și a fost remediată în versiunea Exim 4.99.3. Compilările cu OpenSSL și alte biblioteci, diferite de GnuTLS, nu sunt afectate de această vulnerabilitate.
Problema este cauzată de accesarea memoriei deja eliberate (use-after-free) în backend-ul GnuTLS și poate fi exploatată prin conectarea la servere care suportă extensia "ESMTP CHUNKING" și comanda BDAT pentru a trimite porțiuni din corpul mesajului în loc de a-l transmite într-un singur bloc prin comanda DATA. Corupția conținutului memoriei procesului apare atunci când clientul inițiază încheierea prematură a sesiunii TLS prin comanda close_notify în timpul trimiterii corpului mesajului prin BDAT și urmează trimiterea în aceeași conexiune TCP a unui byte necrifrat.
După primirea comenzii close_notify în backend-ul GnuTLS, se apelează funcția de întrerupere a sesiunii TLS, care eliberează buffer-urile asociate sesiunii. Datorită unei erori în codul backend-ului, în ciuda eliberării buffer-ului TLS, handler-ul BDAT continuă să citească date din flux și apelează funcția ungetc(), ceea ce, atunci când sunt trimise următoarele date necriptate, duce la scrierea unui byte în buffer-ul deja eliberat. Acest byte corupe metadatele alocatorului de memorie din heap, fiind folosit pentru experimentele de creare a unui exploit capabil să execute cod arbitrar pe server.
La început, cercetătorii au generat un exploit parțial funcțional prin AI, care a permis executarea codului, dar era operabil doar în condiții controlate, pe sisteme cu protecția ASLR și PIE dezactivate și cu o anumită versiune a bibliotecii libc. Apoi, a fost făcută o încercare de a crea un exploit cu ajutorul oamenilor, în care o parte din dificultăți a fost depășită și s-a reușit obținerea unei scurgeri a adresei stivei, dar până la data planificată pentru divulgarea informațiilor despre vulnerabilitate, exploitul nu a fost finalizat. În opinia cercetătorilor care au descoperit vulnerabilitatea, asistenții AI nu sunt încă capabili să creeze exploate pentru produse complexe, dar speră că în viitor alți cercetători vor putea finaliza munca lor și vor scrie un exploit complet funcțional.
Dintre distribuitorii majori, versiunile Exim 4.97+ sunt utilizate în Debian 13, Ubuntu 24.04+, SUSE/openSUSE, Arch Linux, Alpine Linux 3.19+, ALT Linux p11, ROSA, Gentoo, OpenWRT, Fedora, EPEL (exim nu se află în depozitul standard RHEL) și FreeBSD. Configurarea Exim cu GnuTLS este utilizată implicit în Debian și Ubuntu, în alte distribuții necesită specificarea. Ca o soluție alternativă pentru blocarea vulnerabilității, se poate dezactiva extensia CHUNKING prin ajustarea chunking_advertise_hosts în fișierul de configurare.
Sursa: opennet.ro
