Lỗ hổng NGINX nghiêm trọng: Nguy cơ RCE không xác thực

Lỗ hổng NGINX nghiêm trọng: Nguy cơ RCE không xác thực
CLOUD HOSTING
DỊCH VỤ
VPS • CLOUD • SERVER
Hiệu năng cao
Ổn định • Bảo mật • Tốc độ
☁️
SSD NVMe 99.9% 24/7
TÌM HIỂU NGAY

Một lỗ hổng NGINX nghiêm trọng (heap buffer overflow) đã được phát hiện trong NGINX PlusNGINX Open Source. Lỗ hổng này cho phép những kẻ tấn công không cần xác thực làm sập các tiến trình worker và, trong một số điều kiện nhất định, thực thi mã tùy ý từ xa.

Phân tích CVE-2026-42533: Lỗ hổng NGINX nghiêm trọng

Tổng quan về Lỗ hổng CVE-2026-42533

Được định danh là CVE-2026-42533, lỗ hổng này ảnh hưởng đến các cấu hình sử dụng chỉ thị map dựa trên biểu thức chính quy (regex) hoặc các biến không thể lưu vào bộ nhớ đệm (non-cacheable variables) trong các biểu thức chuỗi. Mức độ nguy hiểm đặc biệt cao khi tính năng ssl_preread của module Stream xử lý lưu lượng TLS được chế tác đặc biệt trước khi xác thực.

Để biết thêm chi tiết kỹ thuật về lỗ hổng, bạn có thể tham khảo báo cáo từ Depth First Labs tại GitHub. Thông tin bổ sung cũng có sẵn trên NVD – NIST (Lưu ý: Liên kết NVD có thể chưa có thông tin chi tiết vào thời điểm ban đầu phát hiện).

Cơ chế kích hoạt và điều kiện khai thác

Lỗ hổng heap buffer overflow này xuất hiện khi một chỉ thị map sử dụng khớp regex và một biểu thức chuỗi tham chiếu các biến bắt giữ regex của map trước biến đầu ra của map. Điều kiện tương tự cũng có thể phát sinh khi một biến không thể lưu vào bộ nhớ đệm được sử dụng trong biểu thức chuỗi dưới các thiết lập cụ thể.

Một kẻ tấn công có khả năng gửi các yêu cầu HTTP hoặc TLS được chế tác đặc biệt có thể kích hoạt hiện tượng heap buffer overflow trong tiến trình worker của NGINX, buộc hệ thống phải khởi động lại. Trên các hệ thống mà tính năng Address Space Layout Randomization (ASLR) bị tắt, hoặc nơi kẻ tấn công có thể bỏ qua ASLR, lỗ hổng này có thể leo thang thành remote code execution (RCE).

Chi tiết kỹ thuật về cơ chế Buffer Overflow

Quá trình xử lý giá trị phức tạp của NGINX

Nguyên nhân gốc rễ của lỗ hổng NGINX này nằm ở engine script nội bộ của NGINX, vốn đánh giá các “giá trị phức tạp” (complex values) qua hai lượt. Lượt đầu tiên tính toán tổng chiều dài của kết quả; lượt thứ hai sao chép dữ liệu vào một bộ đệm heap có kích thước đã được tính toán.

Khi một biến dựa trên regex, chẳng hạn như biến được tạo ra bởi một chỉ thị map, được đánh giá giữa hai lượt này, nó có thể cập nhật trạng thái bắt giữ toàn cục. Khi đó, lượt sao chép thứ hai sẽ sao chép nhiều dữ liệu hơn lượng bộ nhớ đã được cấp phát, ghi đè ra ngoài vùng cuối của bộ đệm.

Tấn công qua Stream Module và ssl_preread

Trong module Stream, lệnh ssl_preread trích xuất các trường bắt tay TLS như Server Name Indication (SNI) vào các biến thường được sử dụng trong các giá trị phức tạp. Vì quá trình này xảy ra trước khi kết thúc TLS, bề mặt tấn công được phơi bày cho các client không được xác thực.

Trong một kịch bản khai thác điển hình, kẻ tấn công gửi một TLS ClientHello với SNI được chế tác cẩn thận đến một listener luồng (stream listener) đã bật ssl_preread và có cấu hình đánh giá các biến bắt giữ regex bên trong một giá trị phức tạp.

Quá trình tính toán chiều dài ban đầu sẽ đánh giá thấp kích thước cuối cùng. Sau khi trạng thái bắt giữ thay đổi, bước sao chép sẽ gây tràn bộ đệm heap. Các nhà nghiên cứu bảo mật đã lưu ý rằng lỗi này có thể tạo ra cả các nguyên thủy rò rỉ thông tin (information-leak) và ghi ngoài giới hạn (out-of-bounds write), cùng hỗ trợ bỏ qua ASLR và khai thác đáng tin cậy trên các phiên bản dễ bị tổn thương của lỗ hổng NGINX.

Tác động và rủi ro từ lỗ hổng

Tiềm năng chiếm quyền điều khiển hệ thống

Lỗ hổng CVE-2026-42533 là một lỗi NGINX cực kỳ mạnh mẽ, cung cấp cả khả năng rò rỉ thông tin và ghi đè heap ngoài giới hạn. Điều này cho phép kẻ tấn công bỏ qua ASLR và đạt được khả năng remote code execution trên các hệ thống mục tiêu. Đây là một rủi ro bảo mật nghiêm trọng có thể dẫn đến việc chiếm quyền kiểm soát hoàn toàn máy chủ bị ảnh hưởng.

Việc nhiều nhóm nghiên cứu dường như đã phát hiện ra CVE-2026-42533 cùng lúc cho thấy mức độ phổ biến của các đường dẫn mã bị ảnh hưởng. Điều này nhấn mạnh tầm quan trọng của việc xử lý nhanh chóng lỗ hổng NGINX này.

Biện pháp phòng ngừa và vá lỗi

Khuyến nghị cập nhật và cấu hình

Các tổ chức đang chạy NGINX Plus hoặc Open Source với các khối stream, ssl_preread hoặc map dựa trên regex cần xem xét việc vá lỗi này là ưu tiên hàng đầu.

Cho đến khi các bản cập nhật được áp dụng, có thể giảm thiểu rủi ro bằng cách giảm tiếp xúc của các stream listener với các mạng không đáng tin cậy, tránh tham chiếu các biến bắt giữ regex trong các giá trị phức tạp trước các biến đầu ra của map, và đảm bảo ASLR vẫn được kích hoạt.

Các quản trị viên nên theo dõi các kênh chính thức của F5 và NGINX để biết các bản phát hành đã sửa lỗi và áp dụng chúng kịp thời. Sau đó, cần xác thực rằng các tiến trình worker không còn bị sập khi nhận các yêu cầu ClientHello hoặc HTTP được định dạng sai.

Kết luận và bài học bảo mật

CVE-2026-42533 làm nổi bật cách các lỗi sắp xếp tinh vi trong các engine script có thể trở thành mối đe dọa từ xa khi chúng nằm trên đường dẫn phân tích giao thức không cần xác thực. Đối với các chuyên gia bảo mật, bài học rất rõ ràng: kiểm kê các cấu hình NGINX stream và map, thực hiện bản vá bảo mật nhanh chóng và giữ vững các biện pháp bảo vệ bộ nhớ như ASLR.