GPU VulnDB

Database/Kernel, userspace & hypervisor

KVM arm64: nested_mmus array reallocated outside mmu_lock, leaving MMU-notifier walkers on freed memory

CVSS 8.8CVE-2026-46317Kernel, userspace & hypervisorcurated

Impact

kvm_vcpu_init_nested() reallocated kvm->arch.nested_mmus[] and freed the old buffer while holding only config_lock, but the array is walked under mmu_lock - including from the MMU-notifier path via kvm_unmap_gfn_range() -> kvm_nested_s2_unmap(), which can fire at any time. A guest that triggers nested MMU initialization while host memory management is unmapping pages gets the host dereferencing a freed array: use-after-free in the host hypervisor, with the recorded scope change that implies a guest-to-host crossing. On Arm GPU hosts (Grace-based nodes and similar) running nested virtualization for tenants, the worst case is host compromise or a hypervisor crash that loses every VM and every GPU job on the node. The exposure is narrow: only configurations with KVM arm64 nested virtualization enabled reach this code, and NV is still a young feature that most fleets do not turn on.

Who can reach it

Local on the host, from inside a guest: a tenant VM on an arm64 KVM host with nested virtualization enabled that can cause vCPU nested-MMU init. Requires only normal guest-level privilege, no host credentials. Hosts without arm64 NV are not affected.

What to do

Update to a stable kernel with the linked fix (allocate outside mmu_lock, copy and reassign under it, free after dropping it) and reboot the hypervisor. If you cannot patch promptly, disabling KVM arm64 nested virtualization removes the path - that still means restarting guests. Either way drain the node first.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.