CVE Catalog

CVE-2026-23425

HighCVSS 8.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.12%

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

Summary

In KVM for ARM64, a fix addresses the initialization of ID registers for non-protected pKVM guests. In protected mode, the hypervisor copied the KVM_ARCH_FLAG_ID_REGS_INITIALIZED flag without initializing the id_regs data, causing ID registers to be zeroed. This led to errors in feature detection, such as TCR2_EL1, and potential state corruption.

Risk Assessment

The organization may experience state corruption in KVM virtual machines on ARM64, potentially leading to unexpected behavior or data loss.

Recommendation

Update the Linux kernel to a version containing the fix and avoid using non-protected pKVM guests until the patch is applied.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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.

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