Zapscape, một lỗ hổng nhân Linux mới, có thể cho phép kẻ tấn công có đặc quyền nhân (kernel) bên trong một máy ảo khách (VM) L1 thoát khỏi sự cô lập của KVM và thực thi mã trên máy chủ (host). Rủi ro này phát sinh khi ảo hóa lồng nhau (nested virtualization) được cung cấp cho các máy khách không đáng tin cậy.
Lỗ hổng này được theo dõi với mã hiệu CVE-2026-64561 và ảnh hưởng đến đơn vị quản lý bộ nhớ bóng (shadow memory management unit - MMU) của KVM/x86, nơi quản lý các bảng trang bóng (shadow page tables) được sử dụng để dịch bộ nhớ cho các máy khách lồng nhau.
Nhà nghiên cứu bảo mật Hyunwoo Kim, người đã tiết lộ lỗi này, cho biết lộ trình khai thác (exploit) được chứng minh có thể chạy các lệnh trên máy chủ với đặc quyền nhân hoặc root.
Bản sửa lỗi chính thức đã được gộp (merge), và các quản trị viên vận hành máy chủ KVM có cung cấp ảo hóa lồng nhau cho các khách không tin cậy nên cập nhật lên nhân ổn định đã được vá hoặc gói từ nhà cung cấp có backport bản vá.
Đặc quyền nhân L1 yêu cầu thường là quyền root của khách. Các hệ thống Intel cũng yêu cầu cả độ dài EPT page-walk 4 và 5 phải được cung cấp cho khách L1. AMD không có điều kiện tương đương.
Chi tiết kỹ thuật về lỗi Use-After-Free trong shadow-MMU
Zapscape là một lỗi về thứ tự kiểm tra "stale-root" trong hệ thống ghi chép shadow-MMU của KVM, có thể dẫn đến tình trạng use-after-free. Trong quá trình xử lý page fault do máy khách kích hoạt, KVM có thể thu hồi các trang MMU và làm mất hiệu lực trang gốc (root page) của shadow MMU vẫn đang được lộ trình xử lý lỗi sử dụng. Vì lộ trình này không kiểm tra lại root, KVM có thể tiếp tục hoạt động dưới root đã bị vô hiệu hóa.
Trong một bài phân tích kỹ thuật, Kim mô tả vấn đề là một lỗi use-after-free trong lộ trình zap đệ quy được sử dụng khi KVM thu hồi các trang shadow. KVM đã kiểm tra xem root hiện tại có bị cũ (stale) hay không trước khi cấp thêm các trang MMU. Việc thu hồi sau đó có thể làm mất hiệu lực của chính root đó, nhưng KVM vẫn tiếp tục lộ trình xử lý lỗi và tạo ra các trang shadow con bên dưới nó.
Những trang con này kế thừa trạng thái không hợp lệ từ trang cha và vẫn được đưa vào danh sách trang MMU đang hoạt động của KVM. Việc dọn dẹp sau đó có thể gắn cùng một liên kết danh sách vào hai danh sách cùng một lúc, sau đó giải phóng trang trong khi các tham chiếu danh sách cũ vẫn còn, tạo ra một liên kết treo (dangling link) và ghi dữ liệu sau khi giải phóng (post-free write).
Proof-of-Concept và tác động thực tế
Proof-of-concept (PoC) công khai của Kim sử dụng kỹ thuật nguyên thủy đó để xây dựng một chuỗi hoàn chỉnh nhằm tạo ra một tệp do root sở hữu có tên /Zapscape trên máy chủ đang chạy KVM bị lỗi.
PoC này nhắm mục tiêu vào AMD nested SVM/NPT trên Linux 7.1.3. Kim khuyến nghị chạy nó dưới QEMU TCG để thử nghiệm an toàn. QEMU không phải là thành phần bị lỗi; lỗi nằm trong KVM nội nhân (in-kernel) và được kích hoạt độc lập với quá trình mô phỏng của QEMU.
Bài viết ngày 6 tháng 8 của Kim bao gồm PoC công khai, nhưng không khẳng định lỗ hổng đã bị khai thác trong thực tế. Kim cũng mô tả nó "không phải là một bản exploit đã được vũ khí hóa để chạy ngay lập tức" trong môi trường đám mây, lưu ý rằng việc sử dụng trong thế giới thực sẽ yêu cầu chuyển các hành động L1 vào một mô-đun nhân của máy khách và điều chỉnh exploit cho phù hợp với cấu hình nhân máy chủ và backend bộ nhớ.
Phạm vi ảnh hưởng và bản vá
National Vulnerability Database liệt kê Linux 5.9 trở về sau là các phiên bản bị ảnh hưởng cho đến khi có các bản phát hành ổn định đã sửa lỗi, bao gồm 6.6.148, 6.12.101, 6.18.42, 7.1.6 và 7.2-rc5.
Red Hat đã gán điểm CVSS sơ bộ là 7.0 trong thông báo của mình và phân loại vấn đề là CWE-825 (giải tham chiếu con trỏ đã hết hạn).
Tình trạng các gói phụ thuộc vào trình theo dõi của từng nhà cung cấp Linux, không chỉ dựa trên chuỗi phiên bản upstream. Red Hat cảnh báo rằng các gói của họ thường mang các bản vá được backport mà không cần nâng cấp lên phiên bản upstream mới.
Tính đến ngày 6 tháng 8 năm 2026, trình theo dõi của Debian liệt kê các gói nhân bullseye, bookworm và trixie là dễ bị tấn công. Phiên bản sid đã được sửa lỗi ở bản 7.1.6-1.
Theo mốc thời gian tiết lộ, Kim đã báo cáo vấn đề cho [email protected] vào ngày 11 tháng 7 năm 2026. Một bản vá đã được gộp vào ngày 21 tháng 7 và CVE-2026-64561 được chỉ định vào ngày 4 tháng 8. Việc tiết lộ công khai diễn ra vào ngày 6 tháng 8.
Bản sửa lỗi, được gộp dưới dạng commit 2abd5287f083, di chuyển việc kiểm tra stale-root ra sau hàm make_mmu_pages_available(). Nếu việc thu hồi làm mất hiệu lực của root hiện tại, KVM hiện sẽ khởi động lại quá trình xử lý lỗi với RET_PF_RETRY thay vì tiếp tục ánh xạ dưới root không hợp lệ.
Việc tiết lộ này nối tiếp các công trình KVM trước đó của Kim, bao gồm Januscape (CVE-2026-53359) và ITScape (CVE-2026-46316).