Exim BDAT Vulnerability Exposes Email Servers to Remote Attacks
14 de Maio de 2026, 05:29
![]()
Technical Overview of the Exim BDAT Vulnerability
The Exim BDAT vulnerability (CVE-2026-45185) is rooted in how Exim handles BDAT (Binary Data) SMTP message transfers when TLS sessions are terminated unexpectedly. Specifically, the flaw occurs in the message body parsing logic when a TLS close_notify alert is received before a BDAT transfer completes. In this scenario, the use-after-free vulnerability emerges when Exim continues processing incoming data after the TLS session teardown has already freed internal memory buffers. If a client then sends an additional byte in cleartext over the same TCP connection, Exim may attempt to write into already freed heap memory. This leads to memory corruption, which can be leveraged in certain circumstances to achieve code execution. Exim maintainers summarized the triggering sequence as follows: the vulnerability appears when a TLS session is closed via close_notify during an active BDAT transfer, followed by continued data transmission on the same connection. This unexpected state transition allows the Exim BDAT vulnerability to surface in affected builds.Affected Configurations and Scope of CVE-2026-45185
The vulnerability affects Exim versions 4.97 through 4.99.2, but only when compiled with USE_GNUTLS=yes. Systems built with other TLS backends, such as OpenSSL, are not impacted. Key affected conditions include:- Exim versions 4.97 to 4.99.2
- Builds using GnuTLS
- SMTP sessions utilizing the CHUNKING (BDAT) extension
- TLS connections interrupted by close_notify during BDAT processing
Security Advisory Timeline for the Exim BDAT Vulnerability
The coordinated disclosure process for CVE-2026-45185 followed a structured timeline beginning in early May 2026:- 2026-05-01 17:29 UTC: Initial report submitted by Federico Kirschbaum (XBOW Security)
- 2026-05-04 20:00 UTC: Follow-up requesting status of the report
- 2026-05-05 ~02:53 UTC: Exim maintainers acknowledged the issue and confirmed a private fix was underway
- 2026-05-07 14:14 UTC: Disclosure coordination discussion initiated by reporter
- 2026-05-07 22:00 UTC: Notification sent to distribution maintainers via distros@openwall
- 2026-05-10 20:00 UTC: Restricted fix access shared with distributors
- 2026-05-12 14:00 UTC: Public advisory and patch release
