CVE-2026-99082 in Linuxthông tin

Tóm tắt

Bởi VulDB • 23/10/2026

Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:

KVM: x86: Sử dụng các memslots đang hoạt động cho bộ nhớ đệm MMIO trên mỗi vCPU

KVM gắn nhãn bộ nhớ đệm MMIO trên mỗi vCPU với một thế hệ (generation) của memslot để việc cập nhật memslot có thể làm vô hiệu hóa thông tin MMIO đã được lưu trong bộ nhớ đệm. Cả hai đường dẫn điền và xác thực đều sử dụng hàm kvm_memslots(), hàm này chọn không điều kiện address space 0, ngay cả khi vCPU đang chạy ở chế độ SMM và sử dụng address space 1.

Commit 56f17dd3fbc4 ("kvm: x86: fix stale mmio cache bug") đã thêm thế hệ memslot vào khóa bộ nhớ đệm để việc cập nhật memslot không thể giữ một mục cũ (stale entry) còn hợp lệ. Khi commit 699023e23965 ("KVM: x86: add SMM to the MMU role, support SMRAM address space") thêm address space SMM vào, các hàm trợ giúp này chưa được chuyển đổi để sử dụng các memslots đang hoạt động (active memslots).

Do đó, việc cập nhật các memslot của SMM có thể khiến một mục từ address space SMM cũ vẫn hiển thị là hợp lệ sau khi vCPU quay trở lại address space bình thường. Một guest sau đó có thể gây ra truy cập vào RAM hợp lệ tại cùng GFN (Guest Frame Number) và trả về cho userspace dưới dạng KVM_EXIT_MMIO.

Việc hoàn tất exit này thông qua address space RAM của VMM sẽ ghi trang hỗ trợ mà không đi qua đường dẫn write-tracking của KVM. Nếu trang đó là nền tảng cho một bảng EPT lồng nhau, KVM có thể tiếp tục sử dụng các bản dịch shadow (shadow translations) được suy ra từ nội dung cũ. Lệnh WARN_ON_ONCE() trong kvm_mmu_write_protect_fault() sẽ bắt lỗi kết hợp không hợp lệ giữa cache và memslot này.

Hãy sử dụng các active memslots của vCPU khi lưu trữ vào bộ nhớ đệm và xác thực mục đó. Các thế hệ (generations) của memslot là duy nhất trên tất cả address spaces, do đó thế hệ cũng phân biệt rõ ràng giữa chế độ bình thường và SMM. Điều này phù hợp với cache MMIO SPTE, vốn đã sử dụng kvm_vcpu_memslots().

Trên một kernel current-mainline chưa được vá, bài kiểm tra hồi quy (regression test) điền đầy bộ nhớ đệm trong SMM và chỉ cập nhật các memslot của SMM sẽ làm thất bại việc ghi RAM dự kiến và kích hoạt cảnh báo từ kvm_mmu_write_protect_fault(). Với thay đổi này, cùng một bài kiểm tra hoàn tất việc ghi RAM mà không có cảnh báo. Các selftests x86/smm_test, set_memory_region_test và memslot_modification_stress_test cũng đều vượt qua.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

25/09/2026

Tiết lộ

23/10/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Want to stay up to date on a daily basis?

Enable the mail alert feature now!