CVE Catalog

CVE-2026-64287

HighCVSS 8.2
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.17%

7th percentile - higher than 7% of all known CVEs

Summary

In the Linux kernel KVM for ARM64, a vulnerability was found due to missing clamping of used_lrs when copying vGIC state to the pKVM hypervisor. The host can provide a value exceeding the number of implemented list registers, leading to out-of-bounds access at EL2.

Risk Assessment

An attacker can cause out-of-bounds memory access at EL2, potentially leading to privilege escalation or system crash.

Recommendation

Apply the patch that clamps used_lrs to the number of implemented list registers after the copy.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS