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.
Published: 2026-06-09
Score: 7.0 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability stems from a race condition in the ARM64 KVM implementation of the Linux kernel. When a guest VM is active, the kernel walks the nested_mmus array under kvm->mmu_lock while the array may be reallocated under kvm->arch.config_lock. Because the reallocation frees the old buffer outside of mmu_lock, a concurrent walker may reference freed memory, yielding a use‑after‑free that can corrupt critical data structures. This flaw can lead to arbitrary code execution from kernel space or a forced kernel crash, impacting availability and potentially confidentiality and integrity at the host level.

Affected Systems

The flaw is present in all Linux kernels running on ARM64 that enable KVM, regardless of distribution. Any system that loads the affected kernel and provides nested paging to guests is affected.

Risk and Exploitability

The CVSS score of 7.0 indicates medium‑to‑high severity. With no publicly known exploit and EPSS unavailable, the real‑world exploit probability is uncertain, but the attack surface is limited to guests that can trigger the race. If a malicious guest can execute code inside the KVM context, it may be able to trigger the reallocation timing to gain arbitrary code execution or crash the host. The flaw is not listed in CISA KEV, but due to its kernel‑level nature, system administrators should treat it as high risk.

Generated by OpenCVE AI on June 10, 2026 at 03:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the kernel patch that fixes the nested_mmus reallocation, e.g., install the latest stable kernel or apply the referenced commits.
  • If patching cannot be performed immediately, disable KVM nested paging for untrusted guests by setting CONFIG_KVM_ARM64_NESTED=n or starting VMs with the –n option to prevent the mmu_lock race.
  • Restrict guest exposure by running only trusted VMs and enforcing strict privilege isolation or MAC policies to limit the amount of code the guest can execute.

Generated by OpenCVE AI on June 10, 2026 at 03:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 10 Jun 2026 02:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-416

Wed, 10 Jun 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Moderate


Tue, 09 Jun 2026 14:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362
CWE-416

Tue, 09 Jun 2026 12:30:00 +0000

Type Values Removed Values Added
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.
Title KVM: arm64: Reassign nested_mmus array behind mmu_lock
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-06-09T11:52:30.333Z

Reserved: 2026-05-13T15:03:33.112Z

Link: CVE-2026-46317

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-06-09T13:16:37.000

Modified: 2026-06-09T13:16:37.000

Link: CVE-2026-46317

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-06-09T00:00:00Z

Links: CVE-2026-46317 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-06-10T03:30:16Z

Weaknesses