Tổ chức Phần mềm Apache (ASF) vừa phát hành các bản cập nhật bảo mật khẩn cấp nhằm khắc phục một số lỗ hổng nghiêm trọng trong Apache HTTP Server. Trong đó, đáng chú ý nhất là lỗ hổng liên quan đến giao thức HTTP/2, có thể bị khai thác để gây từ chối dịch vụ (DoS) hoặc thực thi mã từ xa (RCE).
Cơ chế kỹ thuật của lỗ hổng (CVE-2026-23918)
Lỗ hổng được định danh là CVE-2026-23918 (điểm CVSS: 8.8), ảnh hưởng trực tiếp đến Apache HTTP Server phiên bản 2.4.66 và được phát hiện bởi các nhà nghiên cứu đến từ Striga.ai và ISEC.pl.
Về mặt kỹ thuật, đây là một lỗi giải phóng bộ nhớ kép nằm trong thành phần mod_http2, cụ thể là tại luồng dọn dẹp của tệp h2_mplx.c. Chuỗi kích hoạt lỗi diễn ra như sau:
- Yêu cầu từ máy khách: Kẻ tấn công gửi một khung dữ liệu HTTP/2 HEADERS, ngay sau đó là khung RST_STREAM với mã lỗi khác không trên cùng một luồng dữ liệu.
- Xử lý lỗi trên Server: Hành động này được thực hiện trước khi bộ dồn kênh kịp đăng ký luồng, khiến hai hàm phản hồi của thư viện nghttp2 (on_frame_recv_cb và on_stream_close_cb) bị kích hoạt tuần tự.
- Hệ quả giải phóng kép: Cả hai hàm đều gọi chuỗi lệnh h2_mplx_c1_client_rst → m_stream_cleanup, đẩy cùng một con trỏ h2_stream vào mảng dọn dẹp hai lần. Khi hàm c1_purge_streams thực thi hủy luồng, lượt gọi thứ hai sẽ tác động trực tiếp vào vùng bộ nhớ đã bị giải phóng trước đó.
Cơ chế khai thác DoS và RCE
Theo các nhà nghiên cứu, lỗ hổng này mở ra hai kịch bản tấn công nguy hiểm tùy thuộc vào cấu hình hệ thống:
- Tấn công Từ chối dịch vụ (DoS): Cực kỳ đơn giản và hiệu quả trên mọi cấu hình mặc định sử dụng mod_http2và kiến trúc đa luồng (MPM). Kẻ tấn công không cần xác thực, không cần header đặc biệt hay URL cụ thể, chỉ với 1 kết nối TCP và 2 khung dữ liệu là có thể làm sập tiến trình worker, khiến mọi yêu cầu của người dùng hợp lệ tại thời điểm đó bị hủy bỏ.
- Thực thi mã từ xa (RCE): Yêu cầu Thư viện di động Apache (APR) sử dụng bộ cấp phát bộ nhớ mmap (đây là cấu hình mặc định trên các hệ thống gốc Debian và hình ảnh Docker chính thức của httpd).
Mã khai thác mẫu (PoC) hoạt động trên kiến trúc x86_64 cho thấy, kẻ tấn công có thể đặt một cấu trúc h2_stream giả lập vào địa chỉ ảo đã giải phóng qua mmap, trỏ hàm dọn dẹp tới system(), và sử dụng phân vùng bộ nhớ bảng điểm của Apache làm vùng chứa lệnh. Vì scoreboard nằm ở địa chỉ cố định suốt vòng đời máy chủ (bất kể cơ chế ASLR), cuộc tấn công RCE hoàn toàn khả thi trong thực tế khi có luồng rò rỉ thông tin.
Khuyến nghị hành động từ các chuyên gia bảo mật
Kiến trúc MPM prefork không bị ảnh hưởng bởi lỗ hổng này. Tuy nhiên, diện tấn công (attack surface) thực tế vẫn rất lớn do mod_http2 được tích hợp sẵn trong các bản dựng mặc định và giao thức HTTP/2 hiện được kích hoạt rộng rãi trên các hệ thống đang vận hành.
Để đảm bảo an toàn cho hệ thống, các chuyên gia khuyến cáo quản trị viên:
- Khẩn cấp nâng cấp Apache HTTP Server lên phiên bản 2.4.67 hoặc mới hơn để áp dụng bản vá lỗi.
- Rà soát lại cấu hình sử dụng mod_http2 và các chính sách phân bổ bộ nhớ của hệ thống để giảm thiểu rủi ro bị khai thác.
