CVE-2026-46316
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: KVM: arm64: vgic-its: Libera la referencia de la caché de traducción solo para la entrada borrada vgic_its_invalidate_cache() recorre la caché de traducción por ITS con xa_for_each() y libera la referencia de la caché en cada entrada con vgic_put_irq(). Sin embargo, libera el puntero iterado, en lugar del valor devuelto por xa_erase(). La función se llama desde contextos que no se excluyen mutuamente: los manejadores de comandos ITS mantienen its_lock, la ruta de escritura de GITS_CTLR mantiene cmd_lock, y la ruta que borra EnableLPIs en el GICR_CTLR de un redistribuidor no mantiene ninguno. Dos o más de ellos pueden vaciar la misma caché simultáneamente, y si cada uno observa la misma entrada, la borra y luego la libera, la única referencia que la caché mantiene sobre esa entrada se libera más de una vez. La entrada puede entonces liberarse mientras un ITE aún la mapea. xa_erase() es atómica y devuelve la entrada anterior, por lo que solo se libera la entrada que este contexto eliminó realmente. La referencia de la caché se libera entonces exactamente una vez por entrada incluso cuando las invalidaciones se ejecutan simultáneamente, y el comportamiento no cambia cuando solo se ejecuta un contexto.
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HProductos afectados
| Fabricantes | Producto | Versiones |
|---|---|---|
| linux | linux kernel | < 6.12.93 |
Artículos relacionados
This product uses the NVD API but is not endorsed or certified by the NVD.
La descripción técnica es una traducción nuestra del texto original de NVD, en inglés.
