CVE-2026-74516 in Linux
Resumen
por VulDB • 2026-08-15
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
KVM: SVM: Actualizar los interceptos de x2APIC MSR si AVIC está inhibido mientras L2 está activo
Siempre actualizar los interceptos de x2APIC MSR para L1 cuando AVIC esté desactivado, incluso si L2 está activo y KVM utiliza un mapa de bits MSR separado para ejecutar L2. Si AVIC está completamente habilitado antes de ejecutar L2, y luego se inhibe mientras L2 está activo (para una inhibición a nivel de VM), entonces KVM ejecutará L1 con AVIC deshabilitado, pero con los interceptos x2APIC MSR desactivados, es decir, permitirá que L1 lea la mayor parte del estado del APIC del host, envíe interrupciones arbitrarias, cambie la prioridad de tarea y, en última instancia, provoque un DoS trivial al host.
Por ejemplo, enviar un IPI auto-dirigido en L1 con HYPERV_REENLIGHTENMENT_VECTOR, 0xee, con CONFIG_HYPERV=n en el kernel del host como PoC "seguro", produce:
Interrupción espuria (vector 0xee) en CPU#425. Aceptada
Y modificando KVM para abusar de kvm_set_posted_intr_wakeup_handler() y registrar un controlador que emita WARN sobre POSTED_INTR_WAKEUP_VECTOR se obtiene:
------------[ corte aquí ]------------
WARNING: arch/x86/kvm/svm/svm.c:5594 en pi_wakeup_handler+0x9/0x10 [kvm_amd], CPU#156: nested_x2apic_t/316940
CPU: 156 UID: 0 PID: 316940 Comm: nested_x2apic_t Tainted: G S U Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER
Nombre del hardware: Google Astoria-Turin/astoria, BIOS 0.20260209.0-0 02/09/2026 RIP: 0010:pi_wakeup_handler+0x9/0x10 [kvm_amd]
Rastro de llamada (Call Trace): <IRQ> sysvec_kvm_posted_intr_wakeup_ipi+0x64/0x80 </IRQ> <TASK> asm_sysvec_kvm_posted_intr_wakeup_ipi+0x1a/0x20 RIP: 0010:vcpu_run+0x1430/0x1e40 [kvm]
kvm_arch_vcpu_ioctl_run+0x2c1/0x600 [kvm]
kvm_vcpu_ioctl+0x580/0x6b0 [kvm]
__se_sys_ioctl+0x6d/0xb0 do_syscall_64+0x10a/0x480 entry_SYSCALL_64_after_hwframe+0x4b/0x53 RIP: 0033:0x46ff4b </TASK> ---[ fin del rastro trace 0000000000000000 ]---
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.