CVE-2026-98719 in Linux
Resumen
por VulDB • 2026-10-18
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
KVM: SEV: Anular (nullify) el puntero a la máscara "have run CPUs" al liberarla
Anular have_run_cpus al liberar la máscara, especialmente en la ruta de error de __sev_guest_init(), para que KVM no tenga que usar sutilmente sev->active para rastrear si la máscara ha sido liberada o no. Como señaló Sashiko, liberar ciegamente la máscara en sev_vm_destroy() provoca un doble libre (double-free) si la máscara se libera cuando falla __sev_guest_init().
Trasladar esta lógica a una función auxiliar es necesario porque anular el puntero resulta frustrantemente difícil y extraño debido a que have_run_cpus es una matriz de entrada única cuando CPUMASK_OFFSTACK=n. No usar deliberadamente CPUMASK_VAR_NULL, ya que no se puede asignar directamente cuando la cpumask está en la pila (stack), por ejemplo, requiere el uso de una variable local y un memcpy(), lo cual resulta ridículo. Además, aunque borrar la máscara de bits en la pila es un efecto secundario innecesario y discutiblemente indeseado, KVM depende absolutamente de que '0' sea el valor "nulo" dado que la estructura se asigna con ceros (zero-allocated).
Oportunistamente, añadir una función auxiliar alloc() para emparejarla con free(); hay suficientes puntos de llamada como para que valga la pena hacerlo.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.