Here's a simplified step-by-step breakdown of the attack:
direct=1 role.direct=0 role.kvm_mmu_get_child_sp() looks for a shadow page to reuse, it finds the existing shadow page because the GFN matches. However, it fails to compare the direct role. The old shadow page with direct=1 is incorrectly reused for a context that now requires direct=0 .sptep (shadow page table entry pointer) remains referenced during rmap walks (like for dirty logging or MMU notifier invalidation), leading to a use-after-free condition .The consequences of CVE-2026-53359 are severe, particularly in multi-tenant cloud environments.
/dev/kvm is world-writable (0666), an unprivileged local user can exploit this as a reliable local privilege escalation vector .The Linux kernel community reacted quickly once the flaw was identified. A fix was committed to the mainline kernel and backported to stable kernels, all released on July 4, 2026 .
81ccda30b4e83d8f5cc4fd50503c44e3a33abfeb and its backports) strengthens the validation logic in kvm_mmu_get_child_sp(). It now requires both the guest frame number and the MMU role to match before reusing a shadow page, preventing the role-mismatch that leads to the use-after-free .While patching is the only complete fix, administrators can implement interim mitigations to reduce the attack surface:
/dev/kvm Access: To prevent unprivileged local privilege escalation, restrict access to the KVM device. Change permissions with chmod 660 /dev/kvm and add only trusted users to the kvm group .