CVE-2026-23425: KVM: arm64: Fix ID register initialization for non-protected pKVM guests
In the Linux kernel, the following vulnerability has been resolved:
KVM: arm64: Fix ID register initialization for non-protected pKVM guests
In protected mode, the hypervisor maintains a separate instance of
the `kvm` structure for each VM. For non-protected VMs, this structure is
initialized from the host's `kvm` state.
Currently, `pkvm_init_features_from_host()` copies the
`KVM_ARCH_FLAG_ID_REGS_INITIALIZED` flag from the host without the
underlying `id_regs` data being initialized. This results in the
hypervisor seeing the flag as set while the ID registers remain zeroed.
Consequently, `kvm_has_feat()` checks at EL2 fail (return 0) for
non-protected VMs. This breaks logic that relies on feature detection,
such as `ctxt_has_tcrx()` for TCR2_EL1 support. As a result, certain
system registers (e.g., TCR2_EL1, PIR_EL1, POR_EL1) are not
saved/restored during the world switch, which could lead to state
corruption.
Fix this by explicitly copying the ID registers from the host `kvm` to
the hypervisor `kvm` for non-protected VMs during initialization, since
we trust the host with its non-protected guests' features. Also ensure
`KVM_ARCH_FLAG_ID_REGS_INITIALIZED` is cleared initially in
`pkvm_init_features_from_host` so that `vm_copy_id_regs` can properly
initialize them and set the flag once done.
Security readout for executives and security teams
Plain-English summary
A flaw in Arm64 Linux virtualization can mishandle processor feature information for non-protected guests running under protected KVM. Important guest register state may then be omitted during context switches, potentially causing corruption and affecting confidentiality, integrity, or availability.
Executive priority
Treat as a high-priority, configuration-specific infrastructure update. Identify exposed Arm64 virtualization hosts promptly and schedule corrected kernels through normal emergency patching controls. Systems outside the described pKVM and non-protected guest scenario are not established as exposed by this bundle.
Technical view
pKVM copied the ID-register-initialized flag from the host KVM structure without copying the underlying ID registers. EL2 feature checks therefore returned false, potentially preventing registers including TCR2_EL1, PIR_EL1, and POR_EL1 from being saved and restored. The stable fixes copy the registers and correctly sequence the initialization flag.
Likely exposure
Exposure is concentrated on Arm64 Linux KVM hosts using pKVM with non-protected guests. The bundle lists Linux 6.14, 6.18.17, 6.19.7, and 7.0 as affected. Its isolated โ0โ version entry is ambiguous and should not be interpreted as an affected range without vendor confirmation.
Exploitation context
The CVSS 3.1 assessment is 8.8 and describes local access, low complexity, low privileges, no user interaction, changed scope, and high potential impact. The bundle reports no CISA KEV listing and provides no evidence of active exploitation or a public exploit.
Researcher notes
The reported failure is inconsistent initialization between host and hypervisor KVM structures, not a documented guest escape. The supplied assessment assigns no CWE. Fixes exist in three stable commits, but the bundle does not map each commit to a specific release branch; confirm branch applicability through distributor guidance.
Mitigation direction
Apply a vendor kernel release incorporating the applicable upstream stable fix.
Prioritize Arm64 KVM hosts using pKVM with non-protected guests.
Consult the Linux distributor for exact affected and corrected package versions.
Follow vendor guidance if immediate kernel replacement is operationally impossible.
Validation and detection
Inventory Arm64 virtualization hosts and identify pKVM use with non-protected guests.
Compare running kernel packages with distributor advisories and the cited stable fixes.
Confirm updated hosts boot the corrected kernel before returning workloads to service.
Monitor guests for unexplained state corruption or instability; absence of symptoms does not prove safety.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve ยท low confidence lookup
CVE-2026-23425 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
4Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.