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

- **Publicat el:** 2026-02-04
- **Categoria:** Seguretat
- **Pàgina original:** https://linuxgratis.com/ca/articles/cve-2026-23069-vsock-virtio-integer-underflow-kernel-linux

Un underflow d'enter en el càlcul de crèdits de vsock/virtio pot encuar més dades de les que el par pot gestionar. Afecta un ampli ventall de versions del kernel Linux. CVSS 5.5.

---

L'equip del kernel Linux ha resolt **CVE-2026-23069**, una vulnerabilitat de tipus *integer underflow* (CWE-191) localitzada al transport **vsock/virtio**, concretament al fitxer `net/vmw_vsock/virtio_transport_common.c`. Tot i que la seva gravetat és **mitjana (CVSS 3.1: 5.5)**, val la pena entendre-la perquè afecta un ventall molt ampli de versions i el subsistema de comunicació entre màquines virtuals i el seu amfitrió.

## Què és vsock/virtio

`vsock` (virtio sockets) és el mecanisme que permet a una màquina virtual i al seu hipervisor intercanviar dades sense passar per la pila de xarxa tradicional. Per evitar saturar el receptor, el protocol fa servir un sistema de **crèdits**: cada extrem anuncia quant espai de buffer té disponible (`peer_buf_alloc`), i l'altre extrem només envia fins on càpiga.

## La vulnerabilitat

El problema és a la funció `virtio_transport_get_credit()`, encarregada de calcular quants crèdits queden disponibles per enviar. Segons la descripció 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."*

És a dir: si el par **redueix la mida del buffer que havia anunciat** mentre encara hi ha bytes en trànsit, la resta que calcula el crèdit disponible es pot **desbordar per sota** (underflow). En aritmètica sense signe, restar més del que es té no dóna un nombre negatiu, sinó un **valor positiu enorme**. El resultat és que l'emissor creu disposar de moltíssim espai i **encua més dades de les que el receptor pot gestionar**.

## A qui afecta i gravetat

El vector CVSS és `AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H`. Això indica:

- **Vector local (AV:L)**: requereix accés local, no és explotable directament des d'Internet.
- **Privilegis baixos (PR:L)** i sense interacció de l'usuari.
- Impacte únicament sobre la **disponibilitat (A:H)**: no compromet confidencialitat ni integritat. L'escenari realista és una **denegació de servei** o desestabilització del canal vsock, no l'execució de codi ni el robatori de dades.

Les versions afectades van des de **Linux 4.8** fins a les branques mantingudes: **6.1.161, 6.6.121, 6.12.67** i **6.18.7**, a més d'alguns *release candidates* de la sèrie 6.19. És rellevant sobretot en entorns de **virtualització** on es fa servir vsock (per exemple VMs amb QEMU/KVM o càrregues confidencials que depenen d'aquest canal).

## Mitigació i pegat

La correcció és senzilla i ja està integrada: en lloc de fer la resta de manera directa, el codi **reutilitza la funció existent `virtio_transport_has_space()`**, que tracta correctament el cas límit i evita que el càlcul de crèdits es desbordi.

Recomanacions:

1. **Actualitzar el kernel** a una versió que inclogui el pegat (6.1.162 o superior, 6.6.122+, 6.12.68+, 6.18.8+ o l'equivalent de la teva distribució).
2. En distribucions estables (Debian, Ubuntu, RHEL i derivades), **aplicar les actualitzacions de seguretat del kernel** mitjançant el gestor de paquets; els mantenidors ja han incorporat el *backport*.
3. Si gestiones un parc de VMs, prioritza els amfitrions que exposin vsock a convidats no confiables.

Com a bona pràctica complementària, convé reforçar l'aïllament de les màquines virtuals i limitar quins processos poden obrir sockets vsock. Per aprofundir en l'enduriment del sistema, revisa la nostra guia sobre [SELinux i AppArmor](/ca/articles/selinux-i-apparmor).

## Font

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