CVE-2026-64287

High

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.

SeverityHigh
CVSS8.2
Exploit probability—
ProductLinux Kernel
PublishedJul 25, 2026
First seenJul 25, 2026

How to fix

Update
  • linux linux_kernel6.6.145, 6.12.97, 6.18.40, 7.1.4 or later

Affected products

ProductAffected versionsFixed in
linux linux_kernel6.2 ≤ v < 6.6.145, 6.7 ≤ v < 6.12.97, 6.13 ≤ v < 6.18.40, 6.19 ≤ v < 7.1.46.6.145, 6.12.97, 6.18.40, 7.1.4

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.