➔ Trở về Trang chủ
OrangeCloud Insights
Security••⏱️ 3 phút đọc•Biên tập: OrangeCloud Insights (AI-assisted)•Nguồn: thehackernews.com – info@thehackernews.com (The Hacker News)
OpenBSD gặp lỗ hổng root exploit do lỗi tràn số nguyên 37 năm tuổi

OpenBSD gặp lỗ hổng root exploit do lỗi tràn số nguyên 37 năm tuổi

Tóm tắt kỹ thuật (TL;DR)

"Researchers demonstrated a root exploit on OpenBSD 7.9 by chaining a 37-year-old integer overflow in the `shmat(4)` function with a separate use-after-free kernel flaw. The vulnerabilities bypass kernel protections like KARL, SMAP, and SMEP. Patches were released in September via errata 018 and 026, and are available through syspatch; no CVEs have been assigned."

🛡️ Tác động Bảo mật8/10

Lỗ hổng cho phép khai thác root trên hệ thống OpenBSD, có thể dẫn đến mất kiểm soát hoàn toàn hệ thống. Việc bỏ qua các cơ chế bảo vệ kernel như KARL, SMAP và SMEP làm tăng mức độ nghiêm trọng.

💼 Tác động Vận hành6/10

Các doanh nghiệp sử dụng OpenBSD có thể gặp gián đoạn dịch vụ và mất dữ liệu nếu hệ thống bị tấn công. Việc cập nhật hệ thống ngay lập tức là rất quan trọng để giảm thiểu rủi ro.

Các nhà nghiên cứu vừa trình diễn cách khai thác để có quyền root trên OpenBSD 7.9 bằng cách kết hợp lỗi tràn số nguyên 37 năm tuổi trong hàm shmat(4) với một lỗi use-after-free trong kernel. Lỗ hổng này vượt qua các cơ chế bảo vệ kernel như KARL, SMAP và SMEP.

Calif, công ty bảo mật phát hiện ra các lỗ hổng, đã công bố chi tiết và mã proof-of-concept sau khi OpenBSD phát hành bản vá trong tháng 9. Bản vá được cung cấp qua syspatch cho tất cả các kiến trúc. OpenBSD 7.8 cũng nhận được bản sửa lỗi tràn số nguyên.

Lỗi tràn số nguyên, điểm khởi đầu của chuỗi khai thác, ban đầu được phân loại là bản sửa lỗi độ tin cậy, không phải bảo mật. Lỗi này liên quan đến bộ đếm shared-memory shm_nattch được định nghĩa là số nguyên 16-bit có giá trị tối đa 32,767 từ năm 1988. OpenBSD vẫn giữ kiểu dữ liệu này.

Khai thác tạo 127 phân đoạn shared-memory và 259 tiến trình, đẩy bộ đếm vượt quá giới hạn và gây ra tình trạng race condition dẫn đến use-after-free. Một lỗi ghi ngoài giới hạn cũng ghi đè các bộ đếm multicast-membership trong kernel. Khi socket bị đóng, các decrement dẫn đến việc sửa đổi các mục trong bảng trang, chuyển đổi ánh xạ bộ nhớ người dùng sang quyền truy cập của supervisor, qua đó bỏ qua SMAP và SMEP. Cuối cùng, khai thác ghi đè một con trỏ hàm tại một địa chỉ kernel có thể dự đoán được để thực thi mã của riêng nó.

Nghiên cứu của Calif cũng đề xuất bốn biện pháp tăng cường bảo mật: safe-unlinking cho danh sách liên kết kernel, ngẫu nhiên hóa ánh xạ self-referential của bảng trang, ngẫu nhiên hóa bộ cấp phát kernel và kiểm tra giới hạn dựa trên trình biên dịch.

Câu hỏi thường gặp

Lỗi tràn số nguyên trong `shmat(4)` là gì?

Đây là một lỗi xảy ra khi một giá trị số vượt quá giới hạn của kiểu dữ liệu mà nó được lưu trữ, dẫn đến tràn bộ nhớ. Trong trường hợp này, bộ đếm shared-memory shm_nattch bị tràn, gây ra các vấn đề về quản lý bộ nhớ.

SMAP và SMEP là gì?

SMAP (Supervisor Mode Access Prevention) và SMEP (Supervisor Mode Execution Prevention) là các cơ chế bảo vệ kernel của OpenBSD giúp ngăn chặn mã kernel truy cập trái phép vào bộ nhớ người dùng và thực thi mã từ bộ nhớ người dùng.

OpenBSD đã vá lỗ hổng này như thế nào?

OpenBSD đã phát hành các bản vá qua syspatch trong errata 018 và 026. Các bản vá này sửa lỗi tràn số nguyên và lỗi use-after-free, đồng thời khắc phục các lỗ hổng bảo mật liên quan.

Góc nhìn của Orange Cloud

Theo chúng tôi, lỗ hổng này cho thấy ngay cả các hệ thống được bảo mật cao như OpenBSD vẫn có thể dễ bị tấn công do các vấn đề tồn tại lâu ngày trong mã nguồn. Các doanh nghiệp Việt Nam sử dụng OpenBSD nên cập nhật hệ thống ngay lập tức bằng syspatch. Điều đáng chú ý là việc vá lỗi tràn số nguyên được coi là sửa lỗi độ tin cậy, cho thấy tầm quan trọng của việc xem xét tất cả các bản vá, không chỉ bản vá bảo mật.

Xem nguồn tin gốc để kiểm tra kỹ hơn các thông số kỹ thuật:Xem nguồn tin gốc ➔