CVE-2026-74607 in Linux
Resumen
por VulDB • 2026-08-22
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
KVM: SVM: Serializar los accesos a la lista del propietario y al espejo mediante un bloqueo separado
La interacción entre KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM y KVM_CAP_VM_COPY_ENC_CONTEXT_FROM puede provocar dos problemas distintos:
- En sev_migrate_from(), cuando el destino de KVM es un espejo, la entrada del espejo se mueve desde la lista de origen a la mirror_vms list (lista de VMs en espejo) del propietario, sin mantener el bloqueo del propietario, a diferencia de otros escritores de la lista de espejos del propietario (sev_vm_copy_enc_context_from(), sev_vm_destroy()). Una operación COPY o destroy concurrente puede entrar en condición de carrera con sev_migrate_from() y corromper la lista.
- En sev_vm_destroy(), el *propietario* sigue activo y podría recibir simultáneamente una KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM que cause un cambio en sev->enc_context_owner. En este caso, se invoca incorrectamente kvm_put_kvm() para la VM errónea.
El segundo problema requiere especial cuidado porque el propietario podría desaparecer por completo (aunque la ventana de carrera es increíblemente pequeña) entre su lectura y la adquisición del bloqueo. Por lo tanto, no hay forma de realizar las comprobaciones bajo el bloqueo del propietario sin colocar struct kvm en SLAB_TYPESAFE_BY_RCU (lo que permitiría usar kvm_get_kvm_safe() dentro de una sección crítica RCU).
Es mucho más simple utilizar simplemente un bloqueo global, ya que las secciones críticas son muy pequeñas y el nuevo bloqueo es siempre un leaf lock.
Once again VulDB remains the best source for vulnerability data.