ZeroHour

CVE-2026-80726

mass

Use-after-free in Linux kernel KVM x86 MMU shadow page handling

CVSS 3.1
9.3 critical
EPSS
<1%p7
Published
()
Modified
AI analysis

CVE-2026-80726 is a use-after-free weakness in the Linux kernel's KVM x86 memory management unit (MMU): when creating a child shadow page, KVM did not explicitly clear the page role's 'invalid' flag, which can leave an invalid page on the list of active MMU pages and, when that page is zapped, corrupt the page list and access freed memory. It is triggered locally - the reproduction shows a slab-use-after-free in __kvm_mmu_get_shadow_page() reached via kvm_mmu_load() and KVM vCPU run ioctls - so anyone who can run workloads that drive KVM page-table creation, such as an unprivileged local user launching or using VMs, can set it off. An attacker gains kernel memory corruption on the host, which per the critical 9.3 CVSS score can yield high confidentiality, integrity, and availability impact (host crash or potential privilege escalation) beyond the guest (scope changed). Any Linux system running x86 KVM guests is affected; the advisory does not enumerate specific affected kernel versions, and the bug was reproduced on a 7.2.0-rc2 development (linux-next) kernel. No public proof-of-concept exploit or in-the-wild exploitation is known, and EPSS puts the 30-day exploitation probability at about 0.2%.

What to do: Install a kernel containing the upstream KVM fix ('WARN and clear role.invalid when creating a child shadow page') as soon as your distribution backports it, prioritizing multi-tenant hosts that run untrusted VMs. Until patched, restrict which local users can create or run KVM guests and treat untrusted guests as a local privilege-escalation risk. Audit which hosts have the kvm modules loaded or VM managers in use to focus patching.

Affected
Linux kernel (KVM x86/mmu, shadow paging)
Estimated exposure
massmillions of Linux installations carry the affected KVM code (exact count unknown) — Linux holds the majority of the server OS market and KVM is its built-in hypervisor, powering major public clouds and VM platforms, so more than 100,000 KVM-capable systems is a conservative floor, though actual exploitability requires…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: KVM: x86/mmu: WARN and clear role.invalid when creating a child shadow page Explicitly clear role.invalid when deriving a child shadow page's role from its parent to harden against bugs elsewhere in KVM, as violating KVM's invariant that invalid pages are NOT on the list of active MMU pages leads to use-after-free due to __kvm_mmu_prepare_zap_page() using list_add() instead of list_move() when processing an invalid shadow page, i.e. makes a bad situation far worse. Yell loudly if the parent is invalid, as it means KVM has missed a validity check, i.e. KVM is attempting to map memory using an invalid/obsolete root, but continue on as the child is otherwise still a valid shadow page. ================================================================== BUG: KASAN: slab-use-after-free in __kvm_mmu_get_shadow_page+0x1817/0x1860 [kvm] Write of size 8 at addr ff11000153dd1368 by task repro/853 CPU: 1 UID: 1000 PID: 853 Comm: repro Not tainted 7.2.0-rc2-3aec122bdcaf-next-vm #5 PREEMPT Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 Call Trace: dump_stack_lvl+0x4b/0x70 print_report+0x153/0x49c kasan_report+0xbc/0xf0 __kvm_mmu_get_shadow_page+0x1817/0x1860 [kvm] mmu_alloc_root+0x141/0x320 [kvm] kvm_mmu_load+0x612/0x20f0 [kvm] kvm_arch_vcpu_ioctl_run+0x3dd5/0x6150 [kvm] kvm_vcpu_ioctl+0x5e4/0x10d0 [kvm] __x64_sys_ioctl+0x131/0x1b0 do_syscall_64+0x67/0x5f0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 Allocated by task 853: kasan_save_stack+0x20/0x40 kasan_save_track+0x14/0x30 __kasan_slab_alloc+0x5f/0x70 kmem_cache_alloc_noprof+0xfe/0x2e0 __kvm_mmu_topup_memory_cache+0x135/0x530 [kvm] paging64_page_fault+0x318/0x1e30 [kvm] kvm_mmu_do_page_fault+0x21d/0x630 [kvm] kvm_mmu_page_fault+0x18c/0x17b0 [kvm] kvm_arch_vcpu_ioctl_run+0x1f35/0x6150 [kvm] kvm_vcpu_ioctl+0x5e4/0x10d0 [kvm] __x64_sys_ioctl+0x131/0x1b0 do_syscall_64+0x67/0x5f0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 Freed by task 853: kasan_save_stack+0x20/0x40 kasan_save_track+0x14/0x30 kasan_save_free_info+0x3b/0x60 __kasan_slab_free+0x43/0x70 kmem_cache_free+0xe2/0x400 kvm_mmu_commit_zap_page.part.0+0x1e2/0x310 [kvm] kvm_mmu_free_roots+0x283/0x560 [kvm] kvm_arch_vcpu_ioctl_run+0x33c8/0x6150 [kvm] kvm_vcpu_ioctl+0x5e4/0x10d0 [kvm] __x64_sys_ioctl+0x131/0x1b0 do_syscall_64+0x67/0x5f0 entry_SYSCALL_64_after_hwframe+0x4b/0x53

Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.