Exim đã phát hành các bản cập nhật bảo mật để giải quyết một vấn đề nghiêm trọng ảnh hưởng đến một số cấu hình nhất định, vốn có thể gây ra lỗi bộ nhớ và tiềm ẩn nguy cơ thực thi mã.
Exim là một Mail Transfer Agent (MTA) mã nguồn mở được thiết kế cho các hệ thống tương tự Unix để nhận, định tuyến và chuyển phát email.
Lỗ hổng này, được theo dõi với mã CVE-2026-45185 (còn gọi là Dead.Letter), được mô tả là một lỗ hổng use-after-free trong quá trình phân tích nội dung tin nhắn BDAT (binary data transmission) của Exim khi kết nối TLS được xử lý bởi GnuTLS.
"Lỗ hổng được kích hoạt trong quá trình xử lý nội dung tin nhắn BDAT khi một máy khách gửi cảnh báo TLS close_notify trước khi quá trình truyền nội dung hoàn tất, và sau đó gửi tiếp một byte cuối cùng ở dạng văn bản rõ (cleartext) trên cùng một kết nối TCP," Exim cho biết trong một bản tin tư vấn bảo mật được công bố hôm nay.
Cơ chế hoạt động của lỗ hổng Dead.Letter
"Chuỗi sự kiện này có thể khiến Exim ghi vào một bộ nhớ đệm đã được giải phóng trong quá trình đóng phiên TLS, dẫn đến heap corruption. Kẻ tấn công chỉ cần có khả năng thiết lập kết nối TLS và sử dụng phần mở rộng SMTP CHUNKING (BDAT)."
Vấn đề này ảnh hưởng đến tất cả các phiên bản Exim từ 4.97 đến 4.99.2. Tuy nhiên, nó chỉ ảnh hưởng đến các bản dựng sử dụng cấu hình USE_GNUTLS=yes, nghĩa là các bản dựng dựa trên các thư viện TLS khác như OpenSSL sẽ không bị ảnh hưởng.
Federico Kirschbaum, người đứng đầu Security Lab tại XBOW, một nền tảng kiểm thử an ninh mạng tự động, được ghi nhận là người đã phát hiện và báo cáo lỗi này vào ngày 1 tháng 5 năm 2026.
"Trong quá trình tắt TLS, Exim giải phóng bộ đệm truyền TLS của nó – nhưng một trình bao bọc nhận BDAT lồng nhau vẫn có thể xử lý các byte đang đến và cuối cùng gọi hàm ungetc(), hàm này sẽ ghi một ký tự đơn (\n) vào vùng nhớ đã giải phóng," Kirschbaum giải thích. "Lệnh ghi một byte đó rơi vào siêu dữ liệu (metadata) của bộ cấp phát (allocator) Exim, làm hỏng cấu trúc bên trong của bộ cấp phát; sau đó exploit tận dụng sự hỏng hóc đó để đạt được các quyền thực thi sâu hơn."
XBOW mô tả lỗ hổng này là "một trong những lỗi có cấp độ cao nhất" từng được phát hiện trong Exim cho đến nay, đồng thời nhấn mạnh rằng việc kích hoạt nó hầu như không yêu cầu cấu hình đặc biệt nào trên máy chủ.
Giải pháp khắc phục
Thiếu sót này đã được xử lý trong phiên bản 4.99.3. Tất cả người dùng được khuyến nghị nâng cấp càng sớm càng tốt. Hiện không có biện pháp giảm thiểu nào khác để giải quyết lỗ hổng này.
"Bản sửa lỗi đảm bảo rằng ngăn xếp xử lý đầu vào được thiết lập lại sạch sẽ khi nhận được thông báo đóng TLS trong quá trình truyền BDAT đang diễn ra, ngăn chặn việc sử dụng các con trỏ cũ (stale pointers)," Exim lưu ý.
Đây không phải là lần đầu tiên các lỗi use-after-free nghiêm trọng trong Exim được tiết lộ. Vào cuối năm 2017, Exim đã vá một lỗ hổng use-after-free trong daemon SMTP (CVE-2017-16943, điểm CVSS: 9.8) mà những kẻ tấn công chưa xác thực có thể khai thác để thực thi mã từ xa thông qua các lệnh BDAT được thiết kế đặc biệt và chiếm quyền kiểm soát máy chủ email.