Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en kernel de Linux (CVE-2025-38351)

Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
19/07/2025
Última modificación:
01/08/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: KVM: x86/Hyper-V: Omisión de direcciones no canónicas durante el vaciado de TLB de PV. En invitados KVM con hiperllamadas de Hyper-V habilitadas, las hiperllamadas HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST y HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST_EX permiten que un invitado solicite la invalidación de partes de una TLB virtual. Para ello, el parámetro hypercall incluye una lista de GVA que se supone que deben invalidarse. Sin embargo, cuando se pasan GVA no canónicos, actualmente no hay ningún filtrado implementado y finalmente se pasan a invocaciones comprobadas de INVVPID en Intel / INVLPGA en AMD. Mientras que el INVLPGA de AMD ignora silenciosamente las direcciones no canónicas (efectivamente, una operación nula), el INVVPID de Intel señala explícitamente VM-Fail y, en última instancia, activa WARN_ONCE en invvpid_error(): invvpid failed: ext=0x0 vpid=1 gva=0xaaaaaaaaaaaaa000 WARNING: CPU: 6 PID: 326 at arch/x86/kvm/vmx/vmx.c:482 invvpid_error+0x91/0xa0 [kvm_intel] Modules linked in: kvm_intel kvm 9pnet_virtio irqbypass fuse CPU: 6 UID: 0 PID: 326 Comm: kvm-vm Not tainted 6.15.0 #14 PREEMPT(voluntary) RIP: 0010:invvpid_error+0x91/0xa0 [kvm_intel] Seguimiento de llamadas: vmx_flush_tlb_gva+0x320/0x490 [kvm_intel] kvm_hv_vcpu_flush_tlb+0x24f/0x4f0 [kvm] kvm_arch_vcpu_ioctl_run+0x3013/0x5810 [kvm] Hyper-V informa que las GVA no válidas (aquellas que superan el espacio de GVA de una partición) deben ignorarse. Aunque no está del todo claro si esta regla también se aplica a las GVA no canónicas, es probable que sea correcto asumirlo, y las pruebas manuales en Azure confirman que Hyper-V "real" interpreta la especificación de la misma manera. Omita las GVA no canónicas al procesar la lista de direcciones para evitar el error INVVPID. Como alternativa, KVM podría filtrar los GVA "malos" antes de insertarlos en el FIFO, pero en términos prácticos, la única desventaja de trasladar la validación al procesamiento final es que hacerlo no es óptimo para el invitado y ningún invitado que se comporte bien solicitará vaciados de TLB para direcciones no canónicas.

Impacto