Khai thác lỗ hổng 37 năm tuổi trên OpenBSD để chiếm quyền root
Các nhà nghiên cứu bảo mật vừa công bố kỹ thuật khai thác leo thang đặc quyền trên OpenBSD 7.9 bằng cách kết hợp một lỗi tràn số nguyên tồn tại từ năm 1988 với một lỗ hổng kernel...
- Giọng nữ Bắc
Các nhà nghiên cứu từ công ty bảo mật Calif vừa công bố một kỹ thuật khai thác leo thang đặc quyền cục bộ (local privilege escalation) trên hệ điều hành OpenBSD 7.9. Đáng chú ý, cuộc tấn công này kết hợp một lỗ hổng tràn số nguyên (integer overflow) đã tồn tại suốt 37 năm qua với một lỗi kernel riêng biệt để giành quyền root, đồng thời vượt qua các cơ chế bảo vệ phần cứng như SMAP, SMEP và tính năng KARL (kernel-address randomization).
Table Of Content
Cơ chế khai thác
Lỗ hổng bắt nguồn từ biến đếm shm_nattch trong hàm shmat(4), vốn được định nghĩa là kiểu short có dấu 16-bit với giá trị tối đa là 32.767, một thiết kế kế thừa từ mã nguồn BSD năm 1988. Kẻ tấn công có thể thao túng biến đếm này bằng cách ánh xạ 127 phân đoạn bộ nhớ chia sẻ và tạo ra 259 tiến trình, khiến giá trị biến đếm bị tràn và quay vòng thành số âm (−32.643). Điều này dẫn đến tình trạng use-after-free (UAF) khi kernel giải phóng bộ nhớ vẫn đang được các tiến trình khác sử dụng.
Sau khi chiếm quyền điều khiển, kẻ tấn công thực hiện ghi dữ liệu ngoài giới hạn (out-of-bounds write) để sửa đổi các bảng trang (page-table entries), từ đó chuyển đổi ánh xạ bộ nhớ người dùng thành bộ nhớ cấp giám sát (supervisor-accessible). Cuối cùng, mã khai thác sẽ ghi đè lên một con trỏ hàm tại địa chỉ kernel có thể dự đoán được để thực thi mã độc.
Vấn đề về cơ chế bảo mật
Mặc dù OpenBSD sử dụng KARL để ngẫu nhiên hóa địa chỉ kernel, các nhà nghiên cứu chỉ ra rằng các bộ cấp phát bộ nhớ (memory allocators) của kernel vẫn mang tính tất định. Điều này cho phép kẻ tấn công xác định vị trí các cấu trúc quan trọng mà không cần đến lỗ hổng tiết lộ thông tin (information disclosure).
Khắc phục
OpenBSD đã phát hành các bản vá cho cả hai vấn đề trong tháng 9/2026 thông qua syspatch:
- Errata 018 (14/09): Khắc phục lỗi tràn số nguyên trong
shmat(4). - Errata 026 (30/09): Khắc phục lỗi use-after-free liên quan đến đếm tham chiếu.
Hiện tại, chưa có mã định danh CVE nào được gán cho các lỗ hổng này và cũng chưa có bằng chứng cho thấy chúng đã bị khai thác trong thực tế. Calif cũng đã đề xuất một số biện pháp tăng cường bảo mật cho OpenBSD, bao gồm việc sử dụng cơ chế safe-unlinking cho danh sách liên kết kernel và ngẫu nhiên hóa bộ cấp phát bộ nhớ.
Nguồn tham khảo: The Hacker News


No Comment! Be the first one.