In dem Exim-Mailserver wurde eine kritische Sicherheitsanfälligkeit (CVE-2026-45185) entdeckt, die es ermöglicht, remote Code auf dem Server auszuführen. Das Problem tritt ab der Version Exim 4.97 auf, wenn es mit der GnuTLS-Bibliothek („USE_GNUTLS=yes“) kompiliert wird, und wurde in der Version Exim 4.99.3 behoben. Builds mit OpenSSL und anderen Bibliotheken, die nicht GnuTLS sind, sind von dieser Schwachstelle nicht betroffen.
Das Problem wird durch den Zugriff auf bereits freigegebene Speicherbereiche (use-after-free) im GnuTLS-Backend verursacht und kann ausgenutzt werden, wenn Server angesprochen werden, die die Erweiterung „ESMTP CHUNKING“ und den BDAT-Befehl unterstützen, um den Inhalt der E-Mail in Portionen statt in einem unteilbaren Block über den DATA-Befehl zu übertragen. Eine Beschädigung des Speichers des Prozesses tritt auf, wenn der Client die TLS-Sitzung vorzeitig mit dem Befehl close_notify während der Übertragung des Nachrichteninhalts durch BDAT beendet und sofort danach im selben TCP-Verbindung einen einzelnen unverschlüsselten Byte sendet.
Wenn der close_notify-Befehl im GnuTLS-Backend empfangen wird, wird die Funktion zur Unterbrechung 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 und ruft die Funktion ungetc() auf, obwohl der TLS-Puffer freigegeben wurde. Dies führt dazu, dass beim Senden unverschlüsselter Daten ein Byte in einen bereits freigegebenen Puffer geschrieben wird. Dieses Byte beschädigt die Metadaten des Speichers im Heap, was für Experimente zur Erstellung eines Exploits verwendet wurde, der beliebigen Code ausführt. Server.
Zunächst generierten die Forscher einen teilweise funktionierenden Exploit mithilfe von KI, der die Ausführung von Code ermöglichte, aber nur unter bestimmten Bedingungen funktionierte, nämlich auf Systemen mit deaktiviertem ASLR- und PIE-Schutz sowie mit einer bestimmten Version der libc-Bibliothek. Anschließend wurde der Versuch unternommen, einen Exploit mit menschlicher Beteiligung zu erstellen, bei dem einige Schwierigkeiten überwunden werden konnten, sodass eine Adressleak des Stacks erreicht wurde, aber bis zum geplanten Datum der Offenlegung der Schwachstelle war der Exploit noch nicht vollendet. Nach Meinung der Forscher, die die Schwachstelle entdeckten, sind KI-Assistenten derzeit noch nicht in der Lage, Exploits für komplexe Produkte zu erstellen, hoffen jedoch, dass zukünftige Forscher in der Lage sein werden, ihre Arbeit zu vollenden und einen vollständig funktionierenden Exploit zu schreiben.
Die großen Distributoren verwenden Versionen von 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 Standardrepository von RHEL enthalten) und FreeBSD. Der Exim-Bau mit GnuTLS wird standardmäßig in Debian und Ubuntu verwendet, in anderen Distributionen muss dies gegebenenfalls konkretisiert werden. Ein Workaround zur Blockierung der Schwachstelle besteht darin, die CHUNKING-Erweiterung durch die Einstellung chunking_advertise_hosts in der Konfigurationsdatei zu deaktivieren.
Quelle: opennet.ru
