CVE-2026-46317
Received Received - Intake
KVM: arm64 Nested MMU Array Reassignment Vulnerability

Publication date: 2026-06-09

Last updated on: 2026-06-09

Assigner: kernel.org

Description
In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Reassign nested_mmus array behind mmu_lock kvm->arch.nested_mmus[] is walked under kvm->mmu_lock, including from the MMU notifier path (kvm_unmap_gfn_range() -> kvm_nested_s2_unmap()), which can run at any time. kvm_vcpu_init_nested() reallocates the array and frees the old buffer while holding only kvm->arch.config_lock, so such a walker can reference the freed array. Allocate the new array outside of mmu_lock, as the allocation can sleep. Under the lock, copy the existing entries, fix up the back pointers and reassign the array. Free the old buffer after dropping the lock, as kvfree() can sleep as well.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-06-09
Last Modified
2026-06-09
Generated
2026-06-09
AI Q&A
2026-06-09
EPSS Evaluated
N/A
NVD
EUVD
Affected Vendors & Products
Showing 2 associated CPEs
Vendor Product Version / Range
linux linux_kernel *
linux_kernel kvm *
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Executive Summary

This vulnerability exists in the Linux kernel's KVM (Kernel-based Virtual Machine) for the arm64 architecture. It involves the handling of the nested_mmus array, which is accessed under a lock called mmu_lock. The issue arises because the nested_mmus array can be walked (accessed) under this lock, including during MMU notifier operations that can occur at any time. However, the function kvm_vcpu_init_nested() reallocates this array and frees the old buffer while holding a different lock (config_lock), not the mmu_lock. This means that the array can be freed while another process is still accessing it, leading to a use-after-free condition. The fix involves allocating the new array outside the mmu_lock, copying entries and reassigning the array under the lock, and freeing the old buffer only after releasing the lock, preventing access to freed memory.

Impact Analysis

This vulnerability can lead to a use-after-free condition in the Linux kernel's KVM subsystem on arm64. Such a condition may cause system instability, crashes, or potentially allow an attacker to execute arbitrary code with kernel privileges. This could compromise the security and stability of virtual machines running on affected systems.

Mitigation Strategies

The vulnerability has been resolved in the Linux kernel by properly reallocating and reassigning the nested_mmus array with correct locking to avoid use-after-free conditions.

To mitigate this vulnerability immediately, you should update your Linux kernel to a version that includes this fix.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-46317. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart