Description
In the Linux kernel, the following vulnerability has been resolved:

KVM: arm64: Bound used_lrs when flushing the pKVM hyp vCPU

flush_hyp_vcpu() copies the host vGIC state into the hyp's private vCPU
on every run. The vGIC list register save and restore use used_lrs as
their loop bound and expect it to stay within the number of implemented
list registers. While this is generally the case, flush_hyp_vcpu()
copies vgic_v3 verbatim and does not enforce this, so a value provided
by the host is used at EL2 to index vgic_lr[] and access ICH_LR<n>_EL2
(host -> EL2).

Fix by clamping used_lrs to the number of implemented list registers
after the copy, as the trusted path already does in
vgic_flush_lr_state(). The number of implemented list registers is
constant after init, so it is replicated once from
kvm_vgic_global_state.nr_lr into hyp_gicv3_nr_lr rather than read on
every entry.
Published: 2026-07-25
Score: 8.2 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A flaw in the KVM arm64 hypervisor path copies the host's vGIC state into a private hypervisor vCPU on every run. The field used_lrs is treated as the loop bound for saving and restoring the vGIC list registers, but the code fails to clamp or validate it. An attacker can supply a value larger than the number of implemented list registers, causing the hypervisor to index vgic_lr[] beyond its bounds and read or write the host's ICH_LR<n>_EL2 registers. This unchecked array indexing can corrupt hypervisor data structures and potentially give the attacker privilege escalation or remote code execution within the hypervisor context.

Affected Systems

Any Linux kernel that contains the unpatched KVM arm64 hypervisor code referenced by the commit series c/2c5e72b9fbf83fdfa724e9f1af0f418ccf8739b8 through c/c646431865f4b1a5b14067233fa27b11e05e0d46. The vulnerability affects all kernel variants per the CPE string and is present in distributions that ship kernels without the patch release; specific version numbers are not listed in the data.

Risk and Exploitability

The EPSS score is below 1%, indicating a low probability of exploitation as of the current data, and the vulnerability is not listed in CISA’s KEV catalog. The flaw creates unchecked array indexing in a privileged hypervisor component, which could lead to memory corruption and potentially privilege escalation or remote code execution. Based on the description, it is inferred that an attacker would need to influence the host’s vGIC state during a KVM arm64 hypervisor flush, but the specific exploitation conditions are not detailed in the advisory. Therefore, the exact threat level depends on the environment’s exposure to such manipulation.

Generated by OpenCVE AI on August 13, 2026 at 17:57 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to a Linux kernel version that includes the KVM arm64 patch that clamps used_lrs to the number of implemented list registers.
  • If an immediate kernel upgrade is not feasible, disable virtual GIC support in the hypervisor (e.g., by clearing the CONFIG_VGIC option or using KVM configuration flags) to prevent the vulnerable code path from executing.
  • Monitor host and guest VMs for anomalous ICH_LR register accesses and enforce strict virtualization isolation policies to limit the ability of a guest to influence host vGIC state.

Generated by OpenCVE AI on August 13, 2026 at 17:57 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4724-1 linux-6.12 new package
Debian DSA Debian DSA DSA-6405-1 linux security update
History

Thu, 13 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Weaknesses NVD-CWE-noinfo

Sat, 01 Aug 2026 02:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-753

Thu, 30 Jul 2026 00:15:00 +0000

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

None

threat_severity

Important


Mon, 27 Jul 2026 06:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-753

Mon, 27 Jul 2026 05:15:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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


Sat, 25 Jul 2026 09:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: Bound used_lrs when flushing the pKVM hyp vCPU flush_hyp_vcpu() copies the host vGIC state into the hyp's private vCPU on every run. The vGIC list register save and restore use used_lrs as their loop bound and expect it to stay within the number of implemented list registers. While this is generally the case, flush_hyp_vcpu() copies vgic_v3 verbatim and does not enforce this, so a value provided by the host is used at EL2 to index vgic_lr[] and access ICH_LR<n>_EL2 (host -> EL2). Fix by clamping used_lrs to the number of implemented list registers after the copy, as the trusted path already does in vgic_flush_lr_state(). The number of implemented list registers is constant after init, so it is replicated once from kvm_vgic_global_state.nr_lr into hyp_gicv3_nr_lr rather than read on every entry.
Title KVM: arm64: Bound used_lrs when flushing the pKVM hyp vCPU
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-08-05T12:40:38.316Z

Reserved: 2026-07-19T15:36:31.778Z

Link: CVE-2026-64287

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Analyzed

Published: 2026-07-25T10:17:09.353

Modified: 2026-08-13T15:12:25.723

Link: CVE-2026-64287

cve-icon Redhat

Severity : Important

Publid Date: 2026-07-25T00:00:00Z

Links: CVE-2026-64287 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T18:00:04Z

Weaknesses