Lỗ hổng 16 năm tuổi trong Linux KVM cho phép máy ảo thoát ra hệ thống chủ trên Intel và AMD
Một lỗ hổng use-after-free tồn tại suốt 16 năm trong hypervisor KVM của Linux vừa được phát hiện, cho phép kẻ tấn công từ máy ảo (guest) thoát ra và kiểm soát hệ thống máy chủ...
Một lỗ hổng bảo mật nghiêm trọng mang tên ‘Januscape’ (định danh CVE-2026-53359) vừa được công bố, ảnh hưởng đến hypervisor KVM trên nhân Linux. Điểm đáng chú ý là lỗ hổng này đã tồn tại âm thầm trong suốt 16 năm qua trên cả hai nền tảng kiến trúc x86 phổ biến là Intel và AMD.
Table Of Content
Cơ chế khai thác
Lỗ hổng này nằm trong mã nguồn shadow MMU của KVM. Theo nhà nghiên cứu bảo mật Hyunwoo Kim (@v4bel), người phát hiện ra lỗi, vấn đề xuất phát từ cơ chế tái sử dụng các trang bộ nhớ (page tables). KVM đã thực hiện đối chiếu các trang này dựa trên địa chỉ bộ nhớ mà bỏ qua việc kiểm tra loại trang (tracking page type), dẫn đến tình trạng use-after-free.
Khi bị khai thác, kẻ tấn công có thể làm hỏng trạng thái shadow-page của kernel trên máy chủ. Trong kịch bản đơn giản nhất, kẻ tấn công có thể khiến hệ thống chủ bị treo (panic), làm sập tất cả các máy ảo khác đang chạy trên cùng một máy chủ vật lý. Ở kịch bản nguy hiểm hơn, lỗ hổng này có thể bị biến tấu để thực thi mã từ xa với quyền root trên máy chủ.
Điều kiện tấn công
Để thực hiện khai thác, kẻ tấn công cần đáp ứng hai điều kiện chính:
- Có quyền root bên trong máy ảo (một kịch bản phổ biến trong các môi trường cloud thuê ngoài).
- Máy chủ phải bật tính năng nested virtualization.
Đáng chú ý, lỗ hổng này không yêu cầu sự hỗ trợ từ QEMU hay bất kỳ VMM nào ở tầng người dùng (userspace), mà hoàn toàn nằm trong nhân Linux.
Cách khắc phục
Nhà bảo trì KVM, Paolo Bonzini, đã phát hành bản vá bằng cách bổ sung kiểm tra vai trò (role.word) bên cạnh số khung trang (gfn) trong hàm kvm_mmu_get_child_sp(). Các phiên bản nhân Linux đã được vá bao gồm: 7.1.3, 6.18.38, 6.12.95, 6.6.144, 6.1.177, 5.15.211 và 5.10.260.
Quản trị viên hệ thống đang vận hành các máy chủ KVM x86 cho phép khách hàng sử dụng nested virtualization cần kiểm tra ngay lập tức xem kernel của mình đã được cập nhật bản vá (commit 81ccda30b4e8) hay chưa. Nếu chưa thể cập nhật ngay, giải pháp tạm thời là vô hiệu hóa nested virtualization (thông qua tham số kvm_intel.nested=0 hoặc kvm_amd.nested=0) để loại bỏ hoàn toàn vectơ tấn công này.
Nguồn tham khảo: The Hacker News

No Comment! Be the first one.