CVE-2026-64456 in Linuxinformación

Resumen

por VulDB • 2026-07-25

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

hwrng: virtio: limitar (clamp) used.len informado por el dispositivo en copy_data()

random_recv_done() almacena directamente used.len informado por el dispositivo en vi->data_avail. A continuación, copy_data() indexa vi->data[] utilizando vi->data_idx (avanzado por llamadas previas a copy_data()) y emite un memcpy() sin volver a validar ninguno de los dos valores frente al tamaño del buffer publicado sizeof(vi->data) (SMP_CACHE_BYTES bytes, típicamente 32 o 64).

Un backend virtio-rng malicioso o con errores puede establecer used.len más allá de sizeof(vi->data), desviando el memcpy() más allá del final del array inline hacia los bytes adyacentes del slab kmalloc-1k. hwrng_fillfn() mezcla esos bytes en la RNG (Generador Números Aleatorios) invitada, y root dentro de la máquina virtual también puede observarlos directamente a través de /dev/hwrng.

El impacto concreto ocurre dentro de la máquina virtual:

- Seguridad de memoria / endurecimiento: cualquier backend virtio-rng que informe un used.len excesivo provoca que el controlador lea más allá de vi->data, accediendo al contenido no relacionado del slab. hwrng_fillfn() es un hilo del kernel que se ejecuta tan pronto como se detecta (probing) el dispositivo; no se requiere interacción con el espacio de usuario invitado para desencadenar inicialmente la lectura fuera de límites (OOB).

- Fuga a través de los límites (modelo de amenaza de computación confidencial): un hipervisor malicioso que coopere con root del espacio de usuario invitado, también malicioso o comprometido, puede utilizar /dev/hwrng como canal de fuga para datos del heap del kernel invitado. El host establece un used.len grande, root en el invitado lee /dev/hwrng y los bytes devueltos contienen contenidos del slab del kernel invitado que eran adyacentes a vi->data. En la práctica, las máquinas virtuales de computación confidencial (SEV-SNP, TDX) suelen deshabilitar completamente virtio-rng, por lo que esta vía es estrecha, pero la corrección sigue siendo valiosa porque el bug subyacente de seguridad de memoria contamina la RNG invitada en cualquier host.

KASAN confirma la lectura fuera de límites (OOB) en un invitado 7.1-rc4 cuyo backend virtio-rng ha sido parcheado para informar used.len = 0x10000:

BUG: KASAN: slab-out-of-bounds in virtio_read+0x394/0x5d0 Read of size 64 at addr ffff88800ae0ba20 by task hwrng/52 Call Trace: __asan_memcpy+0x23/0x60 virtio_read+0x394/0x5d0 hwrng_fillfn+0xb2/0x470 kthread+0x2cc/0x3a0 Allocated by task 1: probe_common+0xa5/0x660 virtio_dev_probe+0x549/0xbc0 The buggy address belongs to the object at ffff88800ae0b800 which belongs to the cache kmalloc-1k of size 1024 The buggy address is located 0 bytes to the right of allocated 544-byte region [ffff88800ae0b800, ffff88800ae0ba20)

Misma clase de bug que el commit c04db81cd028 ("net/9p: Fix buffer overflow in USB transport layer"), que endureció usb9pfs_rx_complete() frente a una longitud informada

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

Responsable

Linux

Reservar

2026-07-19

Divulgación

2026-07-25

Moderación

aceptado

Artículo

VDB-383246

CPE

listo

EPSS

0.00148

KEV

no

Actividades

muy bajo

Fuentes

Do you need the next level of professionalism?

Upgrade your account now!