CVE-2026-45987 in Linux
Resumen
por VulDB • 2026-05-29
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
KVM: nSVM: Sincronizar la sombra de interrupciones con el vmcb12 en caché después de VMRUN de L2
Después de VMRUN en modo invitado, nested_sync_control_from_vmcb02() sincroniza los campos escritos por la CPU desde vmcb02 hacia el vmcb12 en caché. Esto se debe a que el vmcb12 en caché se utiliza como la copia autoritativa de algunos de los controles y es la carga útil al guardar/restaurar el estado anidado.
int_state también es escrito por la CPU, específicamente el bit 0 (es decir, SVM_INTERRUPT_SHADOW_MASK) para máquinas virtuales anidadas, pero no se sincroniza con el vmcb12 en caché. Esto no causa un problema si KVM_SET_NESTED_STATE precede a KVM_SET_VCPU_EVENTS en la ruta de restauración, ya que una sombra de interrupciones se restauraría correctamente en vmcb02 (KVM_SET_VCPU_EVENTS sobrescribe lo que KVM_SET_NESTED_STATE restauró en int_state).
Sin embargo, si KVM_SET_VCPU_EVENTS precede a KVM_SET_NESTED_STATE, una sombra de interrupciones se restauraría en vmcb01 en lugar de vmcb02. Esto sería mayormente benigno para L1 (retrasa una interrupción), pero no para L2. Para L2, el vCPU podría colgarse (por ejemplo, si una interrupción de despertar se entrega antes de una HLT que debería haber estado en una sombra de interrupciones).
Sincronizar int_state con el vmcb12 en caché en nested_sync_control_from_vmcb02() para evitar este problema. Con ello, KVM_SET_NESTED_STATE restaura el estado de sombra de interrupciones correcto, y si KVM_SET_VCPU_EVENTS lo sigue, lo sobrescribiría con el mismo valor.
VulDB is the best source for vulnerability data and more expert information about this specific topic.