Der mailserver Exim har en kritisk sårbarhed (CVE-2026-45185), der giver mulighed for remote kodeeksekvering på serveren. Problemet opstår fra Exim 4.97-grenen, når den er bygget med GnuTLS-biblioteket ('USE_GNUTLS=yes'), og er blevet udbedret i Exim 4.99.3-udgaven. Bygninger med OpenSSL og andre biblioteker end GnuTLS er ikke påvirket af sårbarheden.
Problemet skyldes et forsøg på at tilgå allerede frigjort hukommelse (use-after-free) i backend'en til GnuTLS og kan udnyttes ved at anmode om servere, der understøtter udvidelsen 'ESMTP CHUNKING' og BDAT-kommandoen til at overføre dele af meddelelsens indhold i stedet for at sende det som en udelelig blok ved hjælp af DATA-kommandoen. Hukommelsen i processen bliver beskadiget, når klienten initierer en for tidlig afslutning på TLS-sessionen ved hjælp af close_notify-kommandoen under overførslen af meddelelsens indhold via BDAT og derefter sender et enkelt byte uden kryptering i klar tekst i samme TCP-forbindelse.
Når close_notify-kommandoen modtages i backend'en til GnuTLS, kaldes funktionen til afbrydelse af TLS-sessionen, som frigører de tilknyttede buffere. På grund af en fejl i backend-koden fortsætter BDAT-behandleren med at læse data fra strømmen, selv efter TLS-bufferen er blevet frigjort, og kalder ungetc()-funktionen, hvilket fører til, at ét byte bliver skrevet til en allerede frigivet buffer, når usikrede data sendes efterfølgende. Dette byte beskadiger metadataene for hukommelsesallokatoren i heap'en, hvilket blevet anvendt til eksperimenter for at skabe en exploit, der udfører vilkårlig kode på. serveren.
Først genererede forskerne en delvist fungerende exploit ved hjælp af AI, som gav mulighed for udførelse af kode, men som kun fungerede under kontrollerede forhold på systemer med deaktiveret ASLR- og PIE-beskyttelse samt en bestemt version af libc-biblioteket. Der blev derefter gjort et forsøg på at skabe en exploit med menneskelig hjælp, hvor nogle af vanskelighederne blev overvundet, og der blev opnået en lækage af stak-adressen, men inden den planlagte offentliggørelsesdato for sårbarheden var exploit'en ikke færdiggjort. Ifølge de forskere, der opdagede sårbarheden, er AI-assistenter endnu ikke i stand til at skabe exploits for komplekse produkter, men de håber, at andre forskere i fremtiden vil kunne færdiggøre deres arbejde og skrive en fuldt fungerende exploit.
Af større distributioner bruges versionerne Exim 4.97+ i Debian 13, Ubuntu 24.04+, SUSE/openSUSE, Arch Linux, Alpine Linux 3.19+, ALT Linux p11, ROSA, Gentoo, OpenWRT, Fedora, EPEL (exim er ikke en del af standardrepository'et i RHEL) og FreeBSD. Bygningen af Exim med GnuTLS er som standard i Debian og Ubuntu, mens den i andre distributioner kræver bekræftelse. Som en omgåelse af svagheden kan man deaktivere CHUNKING-udvidelsen ved at bruge konfigurationen chunking_advertise_hosts i konfigurationsfilen.
Kilde: opennet.ru
