CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's KVM component, specifically in the handling of virtual Generic Interrupt Controller (vGIC) state during the flush_hyp_vcpu() operation. An attacker could exploit this flaw to manipulate the used_lrs value, potentially leading to unauthorized access to memory and compromising the integrity of the hypervisor. Organizations utilizing Linux-based systems with KVM virtualization should prioritize this issue to mitigate risks associated with elevated privileges and potential system compromise.
Original NVD Description
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.
Related CVEs
Other vulnerabilities affecting the same vendor(s)