Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-64286

CVE-2026-64286: Linux Kernel Privilege Escalation Flaw

CVE-2026-64286 is a privilege escalation vulnerability in the Linux kernel's KVM arm64 subsystem that affects hypervisor security. This article covers the technical details, affected versions, impact, and mitigation strategies.

Updated:

CVE-2026-64286 Overview

CVE-2026-64286 is a Linux kernel vulnerability in the KVM subsystem for arm64, specifically affecting protected KVM (pKVM). The flush_hyp_vcpu() function copies the host vCPU context verbatim into the hypervisor's private vCPU without clearing the __hyp_running_vcpu field. Because ctxt_to_vcpu() expects guest contexts to have a NULL __hyp_running_vcpu and resolves the vCPU via container_of(), a host-supplied pointer is dereferenced at Exception Level 2 (EL2). This host-to-EL2 boundary violation undermines the isolation guarantees that pKVM is designed to provide.

Critical Impact

A privileged host actor can influence pointer resolution inside the pKVM hypervisor at EL2, breaking the host-hypervisor trust boundary on arm64 systems.

Affected Products

  • Linux kernel with KVM arm64 protected mode (pKVM) enabled
  • arm64 systems running affected upstream kernel versions
  • Distributions shipping the vulnerable flush_hyp_vcpu() code path

Discovery Timeline

  • 2026-07-25 - CVE-2026-64286 published to NVD
  • 2026-07-30 - Last updated in NVD database

Technical Details for CVE-2026-64286

Vulnerability Analysis

The flaw resides in the arm64 KVM pKVM implementation. Protected KVM runs a portion of the hypervisor at EL2 in an isolated trust domain distinct from the host kernel at EL1. On every guest run, flush_hyp_vcpu() copies the host-owned vCPU context into the hyp's private vCPU structure. The copy is verbatim and preserves fields that should only ever be valid inside a host context.

One such field, __hyp_running_vcpu, is set only on the host context. The helper ctxt_to_vcpu() assumes any guest context has this field cleared and uses container_of() against it to derive the associated vCPU pointer. When the field carries over a host-provided value into the hyp's private vCPU, EL2 code dereferences an attacker-influenced pointer.

Root Cause

The root cause is missing sanitization at a privilege boundary. The copy from EL1 host memory into EL2-owned state does not enforce the invariant that guest contexts have __hyp_running_vcpu == NULL. This is a classic input validation failure across a trust boundary, closely related to improper trust of caller-controlled pointer data.

Attack Vector

Exploitation requires local access with high privileges on the host kernel. An actor able to control the host vCPU context can seed __hyp_running_vcpu with a chosen value. When flush_hyp_vcpu() copies the context into EL2 and later code invokes ctxt_to_vcpu(), the hypervisor computes a vCPU pointer from the attacker-supplied value using container_of() and dereferences it at EL2. This can lead to hypervisor memory corruption or information disclosure, breaking the confidentiality and integrity guarantees that pKVM provides for guest workloads.

No public proof-of-concept is available. See the upstream fix commits referenced below for the exact code path.

Detection Methods for CVE-2026-64286

Indicators of Compromise

  • Unexpected EL2 panics, hyp aborts, or kernel oops entries referencing flush_hyp_vcpu, ctxt_to_vcpu, or pKVM hyp code paths
  • Kernel logs showing KVM arm64 hypervisor faults on protected VM runs
  • Anomalous crashes on arm64 hosts running confidential or protected guests

Detection Strategies

  • Inventory arm64 hosts running kernels with pKVM enabled and cross-reference against the fixed commit hashes 477145860dba, 6bea2f8becdb, d4f4d61715d1, dfaef40d8a15, and e8042f6e1d7b
  • Monitor dmesg and kernel crash telemetry for hyp-related faults tied to KVM vCPU flush operations
  • Correlate hypervisor faults with local privileged process activity on virtualization hosts

Monitoring Recommendations

  • Forward kernel logs from arm64 virtualization hosts to a centralized logging pipeline and alert on KVM hyp-panic signatures
  • Track root and CAP_SYS_ADMIN process activity that interacts with /dev/kvm on protected-KVM hosts
  • Baseline guest lifecycle events and alert on unexpected VM crashes clustered around specific host processes

How to Mitigate CVE-2026-64286

Immediate Actions Required

  • Apply the upstream Linux kernel patches referenced in the stable git commits 477145860dba, 6bea2f8becdb, d4f4d61715d1, dfaef40d8a15, and e8042f6e1d7b
  • Track distribution advisories for backported fixes and update arm64 virtualization hosts running pKVM
  • Restrict local privileged access on hosts running protected KVM guests until patched

Patch Information

The fix clears __hyp_running_vcpu in the hyp's private vCPU after flush_hyp_vcpu() copies the host context, restoring the invariant that guest contexts have this field NULL. See the upstream commits: 477145860dba, 6bea2f8becdb, d4f4d61715d1, dfaef40d8a15, and e8042f6e1d7b.

Workarounds

  • Disable protected KVM on arm64 hosts where it is not required until patches are deployed
  • Limit access to /dev/kvm and virtualization management interfaces to a minimal set of trusted administrators
  • Isolate arm64 virtualization workloads from untrusted local tenants pending remediation

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.