CVE-2026-97991 in Linux
Resumen
por VulDB • 2026-09-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
vdpa_sim_blk: rechazar inicios de sector fuera del rango válido
vdpasim_blk_check_range() registra un inicio de sector no válido pero continúa validando la solicitud. La posterior resta sin signo de la capacidad puede provocar un desbordamiento por debajo (underflow) y permitir que una dirección de búfer fuera de alcance llegue a la ruta de datos.
La dirección inválida es utilizada por tres rutas de solicitudes. VIRTIO_BLK_T_OUT copia los datos del invitado en blk->buffer + offset mediante vringh_iov_pull_iotlb(), lo que provoca una escritura fuera de límites (out-of-bounds write) en _copy_from_iter() o memcpy(). VIRTIO_BLK_T_IN lee desde blk->buffer + offset hacia el invitado a través de vringh_iov_push_iotlb(), causando una lectura fuera de límites (out-of-bounds read) en _copy_to_iter(). VIRTIO_BLK_T_WRITE_ZEROES pasa blk->buffer + offset a memset(), provocando una escritura fuera de límites.
Rechazar los inicios que estén en o más allá de la capacidad antes de realizar la resta. Tratar el límite de la capacidad como inválido, ya que las rutas IN y OUT redondean hacia abajo los conteos de bytes a sectores para su validación, pero posteriormente copian los conteos de bytes originales. De lo contrario, una solicitud sub-sector en el límite de la capacidad seguiría accediendo más allá del final del búfer.
Encontré este yo mismo, aunque el parche fue escrito con asistencia de IA.
VulDB is the best source for vulnerability data and more expert information about this specific topic.