El equipo del kernel Linux ha resuelto CVE-2026-23069, una vulnerabilidad de tipo integer underflow (CWE-191) localizada en el transporte vsock/virtio, concretamente en el fichero net/vmw_vsock/virtio_transport_common.c. Aunque su gravedad es media (CVSS 3.1: 5.5), conviene entenderla porque afecta a un rango muy amplio de versiones y al subsistema de comunicación entre máquinas virtuales y su anfitrión.
Qué es vsock/virtio
vsock (virtio sockets) es el mecanismo que permite a una máquina virtual y a su hipervisor intercambiar datos sin pasar por la pila de red tradicional. Para evitar saturar al receptor, el protocolo usa un sistema de créditos: cada extremo anuncia cuánto espacio de buffer tiene disponible (peer_buf_alloc), y el otro extremo solo envía hasta donde quepa.
La vulnerabilidad
El problema está en la función virtio_transport_get_credit(), encargada de calcular cuántos créditos quedan disponibles para enviar. Según la descripción oficial del kernel:
“If the peer shrinks its advertised buffer (peer_buf_alloc) while bytes are in flight, the subtraction can underflow and produce a large positive value, potentially allowing more data to be queued than the peer can handle.”
Es decir: si el par reduce el tamaño del buffer que había anunciado mientras todavía hay bytes en tránsito, la resta que calcula el crédito disponible puede desbordarse por debajo (underflow). En aritmética sin signo, restar más de lo que se tiene no da un número negativo, sino un valor positivo enorme. El resultado es que el emisor cree disponer de muchísimo espacio y encola más datos de los que el receptor puede manejar.
A quién afecta y gravedad
El vector CVSS es AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H. Esto indica:
- Vector local (AV:L): requiere acceso local, no es explotable directamente desde Internet.
- Privilegios bajos (PR:L) y sin interacción del usuario.
- Impacto únicamente sobre la disponibilidad (A:H): no compromete confidencialidad ni integridad. El escenario realista es una denegación de servicio o desestabilización del canal vsock, no la ejecución de código ni el robo de datos.
Las versiones afectadas abarcan desde Linux 4.8 hasta las ramas mantenidas: 6.1.161, 6.6.121, 6.12.67 y 6.18.7, además de algunos release candidates de la serie 6.19. Es relevante sobre todo en entornos de virtualización donde se usa vsock (por ejemplo VMs con QEMU/KVM o cargas confidenciales que dependen de este canal).
Mitigación y parche
La corrección es sencilla y ya está integrada: en lugar de hacer la resta de forma directa, el código reutiliza la función existente virtio_transport_has_space(), que trata correctamente el caso límite y evita que el cálculo de créditos se desborde.
Recomendaciones:
- Actualizar el kernel a una versión que incluya el parche (6.1.162 o superior, 6.6.122+, 6.12.68+, 6.18.8+ o equivalentes de tu distribución).
- En distribuciones estables (Debian, Ubuntu, RHEL y derivadas), aplicar las actualizaciones de seguridad del kernel mediante el gestor de paquetes; los mantenedores ya han incorporado el backport.
- Si gestionas un parque de VMs, prioriza los anfitriones que expongan vsock a invitados no confiables.
Como buena práctica complementaria, conviene reforzar el aislamiento de las máquinas virtuales y limitar qué procesos pueden abrir sockets vsock. Para profundizar en el endurecimiento del sistema, revisa nuestra guía sobre SELinux y AppArmor.
Fuente
- NVD - NIST: CVE-2026-23069