In de Exim-mailserver is een kritieke kwetsbaarheid (CVE-2026-45185) ontdekt, die op afstand kan leiden tot code-executie op de server. Het probleem doet zich voor vanaf de Exim 4.97-tak bij compilatie met de GnuTLS-bibliotheek («USE_GNUTLS=yes») en is verholpen in de Exim 4.99.3-release. Builds met OpenSSL en andere bibliotheken dan GnuTLS zijn niet getroffen door deze kwetsbaarheid.
Het probleem wordt veroorzaakt door het aanroepen van al vrijgegeven geheugen (use-after-free) in de backend van GnuTLS en kan worden uitgebuit bij het aanroepen van servers die de uitbreiding «ESMTP CHUNKING» en het BDAT-commando ondersteunen voor het verzenden van het lichaam van een e-mail in delen in plaats van als één ononderbroken blok met het DATA-commando. Het beschadigen van de geheugeninhoud van het proces vindt plaats wanneer de klant een voortijdige beëindiging van de TLS-sessie initieert met het close_notify-commando tijdens de verzending van het bericht via BDAT en vervolgens in dezelfde TCP-verbinding één byte in onversleutelde vorm verzendt.
Bij het ontvangen van het close_notify-commando in de GnuTLS-backend wordt de functie voor het beƫindigen van de TLS-sessie aangeroepen, die de aan de sessie verbonden buffers vrijgeeft. Vanwege een fout in de backend-code blijft de BDAT-handler echter gegevens uit de stream lezen, ondanks de vrijgave van de TLS-buffer, en roept de ungetc()-functie aan, wat leidt tot het schrijven van ƩƩn byte in een al vrijgegeven buffer bij het verzenden van onversleutelde gegevens. Deze byte beschadigt de metadata van de geheugenallocater in de heap, wat is gebruikt voor experimenten met het creƫren van exploits die willekeurige code uitvoeren op. de server.
Aanvankelijk genereerden de onderzoekers een gedeeltelijk werkende exploit via AI, die code-executie mogelijk maakte, maar alleen functioneerde onder ideale omstandigheden, op systemen zonder ASLR- en PIE-beveiliging, en met een bepaalde versie van de libc-bibliotheek. Daarna werd een poging gedaan om een exploit te creƫren met menselijke betrokkenheid, waarbij sommige moeilijkheden werden overwonnen en adreslekken uit de stack werden gecreƫerd, maar tot de geplande datum voor het openbaar maken van de kwetsbaarheid werd de exploit niet voltooid. Volgens de onderzoekers die de kwetsbaarheid ontdekten, zijn AI-assistenten nog niet in staat om exploits te creƫren voor complexe producten, maar hopen ze dat andere onderzoekers in de toekomst hun werk kunnen afronden en een volledig werkende exploit kunnen schrijven.
Van de grote distributies worden versies van Exim 4.97+ gebruikt in Debian 13, Ubuntu 24.04+, SUSE/openSUSE, Arch Linux, Alpine Linux 3.19+, ALT Linux p11, ROSA, Gentoo, OpenWRT, Fedora, EPEL (exim maakt geen deel uit van de standaard repository van RHEL) en FreeBSD. De Exim-bundel met GnuTLS wordt standaard gebruikt in Debian en Ubuntu, in andere distributies vereist het verduidelijking. Als een workaround voor het blokkeren van de kwetsbaarheid kan de CHUNKING-extensie worden uitgeschakeld met behulp van de instelling chunking_advertise_hosts in het configuratiebestand.
Bron: opennet.ru
