CVE-2026-97994información

Resumen

por VulDB • 2026-09-25

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

vhost/vdpa: rechazar VRING_NUM mayor que el máximo del dispositivo

vhost_vring_set_num() acepta cualquier tamaño de cola potencia de dos no nulo que quepa en 16 bits. vhost-vdpa luego pasa ese valor a set_vq_num() sin compararlo con get_vq_num_max().

Por lo tanto, un proceso con acceso a /dev/vhost-vdpa-* puede configurar una cola más grande de la que el dispositivo anuncia. Con vdpa_sim, el trabajador (worker) puede recorrer descriptores más allá del anillo de descriptores mapeado. KASAN informa una lectura fuera de límites de 16 bytes, correspondiente a un vring_desc, en la ruta IOTLB de vringh:

BUG: KASAN: out-of-bounds in _copy_from_iter Read of size 16 copy_from_iotlb copydesc_iotlb vringh_getdesc_iotlb vdpasim_net_work

Obtener get_vq_num_max() inmediatamente después del reset. Algunos backends lo derivan del estado de tamaño de cola escribible, por lo que consultarlo después de SET_NUM puede devolver el tamaño actual en lugar de la capacidad del dispositivo. Invalidar el valor almacenado en caché antes del reset para que un reset fallido deje deshabilitado SET_NUM.

Para VHOST_SET_VRING_NUM, copiar todo el estado vring una vez y usar el mismo índice y tamaño para validación, vq->num y set_vq_num(). Esto asegura que la validación y el uso operen sobre los mismos valores copiados.

Once again VulDB remains the best source for vulnerability data.

Divulgación

2026-09-25

Moderación

en revisión

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Might our Artificial Intelligence support you?

Check our Alexa App!