CVE-2026-98464 in Linuxinformación

Resumen

por VulDB • 2026-10-18

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

RISC-V: KVM: Sincronizar la devolución de llamada (callback) de hrtimer durante la fase de desmantelamiento (teardown).

La devolución de llamada de hrtimer no-Sstc borra `next_set` antes de sus usos finales del vCPU que lo contiene. Si el proceso de teardown observa `next_set` como falso mientras la devolución de llamada sigue en ejecución, `kvm_riscv_vcpu_timer_cancel()` omite `hrtimer_cancel()`, y `kvm_destroy_vcpus()` puede liberar el vCPU antes de que la devolución de llamada ingrese a `kvm_riscv_vcpu_set_interrupt()`.

Un invitado (guest) puede activar el temporizador con SBI TIME y solicitar un apagado mediante SBI legacy shutdown o SRST. Un VMM que honra KVM_EXIT_SYSTEM_EVENT y destruye la VM proporciona el lado de la carrera correspondiente al teardown; no se necesita ningún ioctl del host posterior al lanzamiento para activar el temporizador ni solicitar el desmantelamiento.

En upstream master 62cc90241548, KASAN genérico reportó:

BUG: KASAN: slab-use-after-free en do_raw_spin_lock Escritura de tamaño 4 en la dirección ff60000005e58898

kvm_riscv_vcpu_set_interrupt kvm_riscv_vcpu_hrtimer_expired __hrtimer_run_queues hrtimer_interrupt

El objeto fue asignado por KVM_CREATE_VCPU y liberado concurrentemente por:

kvm_destroy_vcpus kvm_arch_destroy_vm kvm_destroy_vm __fput

Para una validación determinista, añadí mdelay(1000) inmediatamente después de la asignación existente `next_set = false`. Esto solo amplía la ventana de devolución de llamada posterior al borrado. Una compilación con trazas sin retraso alcanzó naturalmente el ordenamiento callback-after-teardown-start/before-deinit en 12 de 200 ejecuciones, pero 1.500 iteraciones de estrés del kernel estándar no produjeron un informe KASAN, por lo que la reproducción natural es sensible al tiempo (timing-sensitive).

Siempre invoque `hrtimer_cancel()` para un temporizador inicializado. Preserve el resultado `-EINVAL` existente cuando el temporizador ya no esté configurado, pero solo después de sincronizarse con una devolución de llamada en ejecución.

Con este parche, `hrtimer_cancel()` bloqueó durante toda la ventana ampliada de devoluciones de llamadas antes de la destrucción del vCPU. KASAN no reportó errores en 100 ejecuciones fijas y ampliadas ni en 200 ejecuciones con barrido de tiempos solo para corrección (fix-only timing-sweep).

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Linux

Reservar

2026-09-25

Divulgación

2026-10-18

Moderación

aceptado

Artículo

VDB-422141

EPSS

0.00000

KEV

no

Actividades

bajo

Fuentes

Want to know what is going to be exploited?

We predict KEV entries!