CVE-2026-64287: KVM: arm64: Bound used_lrs when flushing the pKVM hyp vCPU

Published Jul 25, 2026
·
Updated

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

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

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

Fix by clamping usedlrs to the number of implemented list registers after the copy, as the trusted path already does in vgicflushlrstate(). The number of implemented list registers is constant after init, so it is replicated once from kvmvgicglobalstate.nrlr into hypgicv3nrlr rather than read on every entry.

Affected Software

8 affected componentsFixes available
Linux Linux kernel
Microsoft azl3 kernel 6.6.144.1-1<6.6.145.2-1
6.6.145.2-1
Linux Linux kernel>=6.2<6.6.145
Linux Linux kernel>=6.7<6.12.97
Linux Linux kernel>=6.13<6.18.40
Linux Linux kernel>=6.19<7.1.4
debian/linux
6.1.176-16.1.190-16.12.107-16.12.115-27.2.12-17.2.15-1
debian/linux-6.12
6.12.113-1~deb12u1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 6.6.145.2-1
  2. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.107-1Fixed in 6.12.113-1Fixed in 7.2.12-1Fixed in 7.2.14-1
  3. Upgrade

    Upgrade debian/linux-6.12 to a version that resolves this vulnerability.

    Fixed in 6.12.113-1~deb12u1
  4. Compensating control

    In flush_hyp_vcpu(), clamp used_lrs to the number of implemented list registers after copying the host vGIC state, matching the trusted-path behavior in vgic_flush_lr_state().

Event History

Jul 25, 2026
CVE Published
via MITRE·08:49 AM
Data Sourced
via MITRE·08:49 AM
DescriptionSeverity
Data Sourced
via NVD·10:17 AM
RemedyDescriptionSeverityWeaknessAffected Software
Jul 26, 2026
Data Sourced
via Microsoft·08:10 AM
DescriptionSeverityWeaknessAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Peer vulnerabilities

Found alongside the following vulnerabilities.

Frequently Asked Questions

1

What is the severity of CVE-2026-64287?

CVE-2026-64287 has a severity rating of high with a CVSS score of 8.2.

2

How do I fix CVE-2026-64287?

To fix CVE-2026-64287, update to the patched version of the Linux kernel as indicated in the security advisory.

3

What systems are affected by CVE-2026-64287?

CVE-2026-64287 affects the Linux kernel and specifically the Microsoft azl3 kernel version 6.6.144.1-1.

4

What type of vulnerability is CVE-2026-64287?

CVE-2026-64287 is a vulnerability in the KVM module of the Linux kernel related to bounds checking in vCPU state management.

5

Is CVE-2026-64287 exploitable remotely?

CVE-2026-64287 may be exploited by a local attacker with elevated privileges on the affected system.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203