Mã PoC cho lỗ hổng nghiêm trọng NGINX đã được công bố
Các chi tiết kỹ thuật và mã khai thác khái niệm (PoC) nhắm đến lỗ hổng nghiêm trọng vừa được vá trong NGINX đã xuất hiện. Được theo dõi là CVE-2026-42945 với điểm số CVSS 9.2, lỗi này đã tồn tại trong suốt 16 năm và có thể dẫn đến việc từ chối dịch vụ hoặc thực thi mã từ xa.

Các chi tiết kỹ thuật và mã khai thác khái niệm (PoC) nhắm đến một lỗ hổng có mức độ nghiêm trọng cao vừa được vá trong máy chủ web NGINX hiện đã có mặt.
Được theo dõi dưới mã định danh CVE-2026-42945 (điểm số CVSS là 9.2), vấn đề này đã được vá trong tuần này như một phần của bản phát hành bản vá hàng quý mới nhất của F5. Đáng chú ý, lỗ hổng này đã tồn tại trong hệ thống kể từ năm 2008, tức là 16 năm trước.
Máy chủ NGINX
Chi tiết kỹ thuật về lỗ hổng
Lỗi này được mô tả là một tràn bộ nhớ đệm heap (heap buffer overflow) nằm trong thành phần ngx_http_rewrite_module. Theo F5, lỗ hổng này có thể bị khai thác để kích hoạt việc khởi động lại, tạo ra điều kiện từ chối dịch vụ (DoS).
Ngoài ra, công ty cũng cảnh báo rằng thực thi mã từ xa (Remote Code Execution - RCE) cũng là khả năng có thể xảy ra nếu cơ chế Ngẫu nhiên hóa bố cục không gian địa chỉ (ASLR) bị vô hiệu hóa.
Theo Depthfirst, CVE-2026-42945 ảnh hưởng đến các máy chủ NGINX sử dụng các chỉ thị rewrite và set. Nguyên nhân gốc rễ của vấn đề nằm ở việc sử dụng quy trình hai lần qua (two-pass process) trong công cụ script: một lần để tính toán kích thước bộ nhớ đệm cần thiết, và lần còn lại để sao chép dữ liệu.
Bảo mật mạng
Cơ chế khai thác
Do trạng thái nội bộ của công cụ thay đổi giữa hai lần qua này, nếu một thao tác thay thế (rewrite replacement) chứa dấu hỏi chấm (“?”) được sử dụng, một cờ không được truyền sẽ dẫn đến việc cấp phát bộ nhớ đệm có kích thước không đủ. Điều này khiến dữ liệu URI đã thoát (escaped URI data) do kẻ tấn công kiểm soát được ghi vượt quá giới hạn bộ nhớ heap.
"Bằng cách đệm URI yêu cầu bằng các dấu cộng, chúng ta có thể buộc hàm thoát (escaping function) mở rộng mỗi byte thành ba byte, làm tràn đoạn bộ nhớ đã cấp phát. Kích thước của sự tràn hoàn toàn nằm trong tầm kiểm soát của chúng tôi dựa trên số lượng ký tự có thể thoát mà chúng ta cung cấp", Depthfirst nhận định.
Nguy cơ thực thi mã từ xa
Vì không thể sử dụng byte null (null bytes) cho sự tràn, việc đạt được RCE yêu cầu phải ghi đè tất cả các trường trong vùng nhớ NGINX pool cho đến con trỏ mục tiêu, sau đó phá hủy pool ngay khi sự cố hỏng hóc header pool xảy ra mà không làm sập quy trình worker (worker process).
Công ty an ninh mạng giải thích rằng kỹ thuật khai thác sử dụng "cross-request heap feng shui" để làm hỏng con trỏ dọn dẹp (cleanup pointer) của ngx_pool_t liền kề (được phun qua phần thân POST, vì byte URI không thể chứa byte null), sau đó chuyển hướng nó đến một ngx_pool_cleanup_s giả mạo để gọi system() khi pool bị phá hủy.
Khắc phục và bản vá
F5 đã vá lỗ hổng này trong các phiên bản NGINX Plus 37.0.0, R36 P4 và R32 P6, cũng như trong các phiên bản mã nguồn mở NGINX 1.31.0 và 1.30.1. Các quản trị viên hệ thống được khuyến nghị khẩn trương cập nhật lên các phiên bản này để mitigate rủi ro bị tấn công.
Bài viết liên quan

Phần mềm
Google tung ra Antigravity 2.0: Ứng dụng lập trình thế hệ mới với công cụ CLI và gói đăng ký AI Ultra
19 tháng 5, 2026

Phần mềm
Plugin Checkmarx Jenkins bị xâm phạm trong cuộc tấn công chuỗi cung ứng
11 tháng 5, 2026

Công nghệ
Substrate (YC S24) tuyển dụng Technical Success Manager cho nền tảng AI chuyên xử lý thanh toán y tế
13 tháng 5, 2026
