Exim e-posti серверis tuvastati kriitiline haavatavus (CVE-2026-45185), mis võimaldab kaugjuhituna koodi täitmist serveris. Probleem ilmneb alates Exim 4.97 harust, kui see on koostatud GnuTLS teegiga ("USE_GNUTLS=yes"), ja on lahendatud Exim 4.99.3 väljaandes. OpenSSL ja teiste teekide, mis ei ole GnuTLS, kooste ei ole haavatavusega mõjutatud.
Probleem on põhjustatud juba vabastatud mälu (use-after-free) juurde pääsemisest GnuTLSi tagaratastes ning seda saab ära kasutada serveritele, mis toetavad laiendust "ESMTP CHUNKING" ja BDAT käsku, et edastada sõnumi sisu tükkidena, mitte tervikuna DATA käsku kasutades. Mälu kahjustamine protsessi raames toimub siis, kui klient kutsub TLS-seansi enneaegset lõpetamist close_notify käsu abil sõnumi sisu edastamise ajal läbi BDAT ja saadab seejärel sama TCP-ühenduse kaudu ühe bitti ilma krüpteeringuta.
Saades close_notify käsu GnuTLS tagaratastes kutsub see esile TLS-seansi katkestamisfunktsiooni, mis vabastab seansiga seotud puhvrid. Koodivea tõttu jätkab BDAT töötleja, hoolimata TLS-puhvri vabastamisest, andmete lugemist voost ja kutsub esile ungetc() funktsiooni, mille tõttu viib järgneva krüpteerimata andmete edastamine ühe bitti kirjutamiseni juba vabastatud puhvri. See bitt kahjustab mälu eraldaja metainfot kuhjas (heap), mida on kasutatud katsetes, et luua eksploite, mis täidavad juhuslikku koodi. serveris.
Alguses genereerisid teadlased AI abil osaliselt töötava eksploidi, mis võimaldas koodi täitmist, kuid töötas ainult kasvuhoone tingimustes süsteemidel, kus ASLR ja PIE kaitse oli välja lülitatud, ning teatud libc versiooniga. Seejärel tehti katse eksploidi loomiseks inimese kaasabil, mille käigus suudeti mõned raskused ületada ja saavutada stacki aadressi lekke, kuid kavandatud haavatavuse avalikustamise kuupäevaks eksploidi lõpuni viia ei õnnestunud. Haavatavuse avastanud teadlaste arvates ei suuda AI-assistendid veel keeruliste toodete eksploite luua, kuid nad loodavad, et tulevikus suudavad teised teadlased nende tööd lõpuni viia ja kirjutada täielikult töötava eksploidi.
Suurtel distributsioonidel kasutatakse Exim 4.97+ versioone Debian 13, Ubuntu 24.04+, SUSE/openSUSE, Arch Linux, Alpine Linux 3.19+, ALT Linux p11, ROSA, Gentoo, OpenWRT, Fedora, EPEL (exim ei kuulu RHEL-i vaikerepositoriumisse) ja FreeBSD. Eximi kompileerimine GnuTLS-iga rakendatakse vaikimisi Debianis ja Ubuntus, teistes distributsioonides tuleb see eraldi täpsustada. Haavatavuse blokeerimise alternatiivina saab CHUNKING'i laienduse välja lülitada, muutes konfiguratsioonifailis chunking_advertise_hosts seadistust.
Allikas: opennet.ru
