-
09/04/2020
-
139
-
1.884 bài viết
Hàng nghìn máy chủ email Exim có nguy cơ bị RCE qua lỗi xử lý GnuTLS
Trong một diễn biến mới nhất làm rung chuyển cộng đồng quản trị hệ thống, một lỗ hổng bảo mật nghiêm trọng vừa được phát hiện trên Exim - một trong những trình chuyển tiếp thư (MTA) phổ biến nhất thế giới. Lỗ hổng này không chỉ cho phép thực thi mã từ xa, mà còn được đánh giá là cực kỳ nguy hiểm do rào cản tấn công thấp: không cần thông tin đăng nhập, không cần quyền truy cập nội bộ.
Theo công bố vào ngày 12/5/2026, lỗ hổng được định danh nội bộ EXIM-Security-2026-05-01.1 ảnh hưởng đến các phiên bản Exim từ 4.97 đến 4.99.2 khi được biên dịch với GnuTLS. Điểm đáng chú ý là lỗi có thể bị khai thác từ xa mà không cần xác thực, không yêu cầu quyền truy cập trước, khiến bề mặt tấn công mở rộng đáng kể trong các hệ thống email đang vận hành thực tế.
Vấn đề nằm trong cơ chế xử lý TLS của Exim khi sử dụng GnuTLS, đặc biệt liên quan đến cách hệ thống xử lý lệnh BDAT trong phần mở rộng CHUNKING của giao thức SMTP. Đây là cơ chế cho phép gửi email dung lượng lớn theo từng phần. Khi một phiên TLS đang xử lý BDAT bị gián đoạn bởi tín hiệu close_notify, hệ thống bắt đầu quá trình giải phóng phiên kết nối nhưng không reset đúng trạng thái của chuỗi xử lý đầu vào. Điều này dẫn đến việc tồn tại con trỏ bộ nhớ không còn hợp lệ.
Chuỗi khai thác trở nên nguy hiểm khi kẻ tấn công gửi thêm một byte dữ liệu không mã hóa trên cùng kết nối sau khi TLS đã bị đóng. Exim trong tình huống này vẫn cố gắng xử lý dữ liệu bằng con trỏ đã bị giải phóng, gây ra lỗi use-after-free và dẫn đến hỏng heap. Trong điều kiện phù hợp, hành vi này có thể được chuyển hóa thành thực thi mã tùy ý trên máy chủ.
Các nhà nghiên cứu đánh giá đây là dạng lỗi bộ nhớ cổ điển nhưng có mức độ rủi ro cao trong môi trường email server, nơi các dịch vụ thường xuyên mở cổng TLS công khai và xử lý lưu lượng từ Internet mà không cần xác thực. Điều này khiến việc khai thác trở nên khả thi chỉ với khả năng thiết lập kết nối SMTP tiêu chuẩn và sử dụng cơ chế BDAT vốn được hỗ trợ rộng rãi.
Một điểm giới hạn quan trọng là lỗ hổng chỉ ảnh hưởng đến các bản dựng Exim sử dụng GnuTLS, trong khi các hệ thống dùng OpenSSL hoặc thư viện TLS khác không bị tác động bởi chuỗi khai thác này. Tuy nhiên, do GnuTLS vẫn được sử dụng phổ biến trong nhiều bản phân phối Linux, phạm vi ảnh hưởng thực tế vẫn được đánh giá là đáng kể.
Nhóm phát triển Exim đã xác nhận và xử lý lỗi trong thời gian ngắn sau khi nhận báo cáo từ nhà nghiên cứu Federico Kirschbaum thuộc XBOW Security. Bản vá được phát hành trong phiên bản 4.99.3, trong đó cơ chế xử lý đã được sửa lại để đảm bảo trạng thái bộ nhớ được reset đầy đủ khi nhận tín hiệu close_notify trong quá trình truyền BDAT, qua đó chặn hoàn toàn chuỗi khai thác.
Các quản trị viên đang vận hành Exim trong dải phiên bản bị ảnh hưởng cần lập tức cập nhật lên phiên bản 4.99.3 để loại bỏ hoàn toàn nguy cơ bị khai thác từ xa.