Im Exim-Mailserver wurde eine kritische Sicherheitsanfälligkeit (CVE-2026-45185) entdeckt, die es Angreifern ermöglicht, aus der Ferne Code auf dem Server auszuführen. Das Problem tritt ab der Version Exim 4.97 auf, wenn sie mit der GnuTLS-Bibliothek ("USE_GNUTLS=yes") kompiliert wurde, und wurde in der Version Exim 4.99.3 behoben. Versionen mit OpenSSL und anderen Bibliotheken, die nicht GnuTLS sind, sind von dieser Sicherheitsanfälligkeit nicht betroffen.
Das Problem wird durch den Zugriff auf bereits freigegebenen Speicher (use-after-free) im GnuTLS-Backend verursacht und kann ausgenutzt werden, wenn auf Server zugegriffen wird, die die Erweiterung "ESMTP CHUNKING" und den BDAT-Befehl unterstützen, um den Inhalt einer Nachricht in Teilen und nicht als unteilbaren Block mit dem DATA-Befehl zu übertragen. Ein Speicherbeschädigung im Prozess tritt auf, wenn der Client das TLS-Sitzung vorzeitig mit dem close_notify-Befehl abbricht, während er den Nachrichtentext über BDAT überträgt und anschließend im selben TCP-Verbindung ein Byte unverschlüsselt sendet.
Beim Empfang des close_notify-Befehls wird im GnuTLS-Backend eine Funktion zum Abbrechen der TLS-Sitzung aufgerufen, die die mit der Sitzung verbundenen Puffer freigibt. Aufgrund eines Fehlers im Backend-Code liest der BDAT-Handler weiterhin Daten aus dem Stream, obwohl der TLS-Puffer freigegeben wurde, und ruft die Funktion ungetc() auf, was dazu führt, dass ein Byte in einen bereits freigegebenen Puffer geschrieben wird, wenn unverschlüsselte Daten gesendet werden. Dieses Byte beschädigt die Metadaten des Speicherallokators im Heap, was für Experimente zur Erstellung eines Exploits genutzt wurde, der beliebigen Code ausführt. Server.
Zunächst erzeugten die Forscher einen teilweise funktionierenden Exploit über KI, der die Ausführung von Code ermöglichte, aber nur unter laborähnlichen Bedingungen, auf Systemen ohne ASLR- und PIE-Schutz und mit einer bestimmten Version der libc-Bibliothek. Anschließend wurde ein Versuch unternommen, einen Exploit mit menschlicher Unterstützung zu erstellen, bei dem es gelang, einige Schwierigkeiten zu überwinden und eine Adressleak des Stacks zu erreichen, doch vor dem geplanten Datum der Offenlegung der Sicherheitsanfälligkeit konnte der Exploit nicht abgeschlossen werden. Nach Ansicht der Forscher, die die Sicherheitsanfälligkeit entdeckt haben, sind KI-Assistenten noch nicht in der Lage, Exploits für komplexe Produkte zu erstellen, sie hoffen jedoch, dass in Zukunft andere Forscher ihre Arbeit abschließen und einen voll funktionsfähigen Exploit schreiben können.
In den großen Distributionen wird Exim 4.97+ in Debian 13, Ubuntu 24.04+, SUSE/openSUSE, Arch Linux, Alpine Linux 3.19+, ALT Linux p11, ROSA, Gentoo, OpenWRT, Fedora, EPEL (Exim ist nicht im Standard-Repository von RHEL enthalten) und FreeBSD verwendet. Der Build von Exim mit GnuTLS wird standardmäßig in Debian und Ubuntu verwendet, in anderen Distributionen ist eine Bestätigung erforderlich. Als Umgehung der Schwachstelle kann die CHUNKING-Erweiterung durch Anpassung von chunking_advertise_hosts in der Konfigurationsdatei deaktiviert werden.
Quelle: opennet.ru
