# CVE-2026-23069: integer underflow en vsock/virtio del kernel Linux

- **Publicado el:** 2026-02-04
- **Categoría:** Seguridad
- **Página original:** https://linuxgratis.com/articulos/cve-2026-23069-vsock-virtio-integer-underflow-kernel-linux

Un underflow de entero en el cálculo de créditos de vsock/virtio puede hacer que se encolen más datos de los que el par puede gestionar. Afecta a un amplio rango de versiones del kernel Linux. CVSS 5.5.

---

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:

1. **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).
2. 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*.
3. 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](/articulos/selinux-y-apparmor).

## Fuente

- NVD - NIST: [CVE-2026-23069](https://nvd.nist.gov/vuln/detail/CVE-2026-23069)
