# CVE-2026-23226: use-after-free en ksmbd (SMB3 multichannel) del kernel Linux

- **Publicado el:** 2026-02-18
- **Categoría:** Seguridad
- **Página original:** https://linuxgratis.com/articulos/cve-2026-23226-ksmbd-smb3-multichannel-use-after-free-kernel-linux

Un fallo de sincronización en el servidor SMB3 del kernel Linux (ksmbd) permite un use-after-free en sesiones multicanal. Afecta a kernels 6.3 a 6.19.0. Explicamos el riesgo, a quién afecta y cómo mitigarlo.

---

El 18 de febrero de 2026 se hizo pública la **CVE-2026-23226**, un *use-after-free* (CWE-416) en **ksmbd**, el servidor SMB3 que corre dentro del propio kernel Linux (en `fs/smb/server`). La gravedad es **alta**. NVD le pone un CVSS 3.1 de **7.8** y el CNA de kernel.org sube esa nota a **8.8** porque la considera explotable por red.

## Qué es ksmbd y dónde está el fallo

ksmbd es el servidor SMB (el protocolo de compartición de archivos de Windows) que vive en espacio de kernel, una alternativa rápida al clásico Samba en espacio de usuario. Cuando un cliente negocia una sesión con **SMB3 multichannel**, varias conexiones de red comparten una misma sesión y se reparten el tráfico entre distintos canales.

El fallo está en la lista de canales `ksmbd_chann_list`, que se implementa como un *xarray*. A esa estructura **le faltaba sincronización**: entre buscar un canal con `lookup_chann_list()` y borrarlo con `ksmbd_chann_del()` quedaba abierta una condición de carrera. Si dos conexiones comparten la misma sesión sobre SMB3 multichannel, el kernel puede terminar **leyendo una estructura de canal ya liberada**, es decir, tocando memoria a través de un puntero colgante.

## A quién afecta y con qué gravedad

El problema afecta a los sistemas Linux que **tienen ksmbd activado y exponen un servidor SMB3 con multichannel habilitado**. No toca a quien usa Samba en espacio de usuario, ni a sistemas sin el módulo ksmbd cargado o con el servicio parado.

Los rangos vulnerables van desde **Linux 6.3 hasta 6.18.10**, más **6.19.0** (con correcciones también retroportadas a ramas estables anteriores). Un use-after-free en el kernel, en el peor caso, deriva en corrupción de memoria, con posibilidad de ejecución de código o denegación de servicio. Esa diferencia entre el 7.8 de NVD (vector local) y el 8.8 de kernel.org (vector de red) tiene una explicación clara: como ksmbd es un servicio expuesto en red, un atacante remoto autenticado podría disparar la condición.

## Mitigación y parche

La corrección llegó en un *commit* de **Greg Kroah-Hartman el 16 de febrero de 2026**. El parche añade un **semáforo lector-escritor `chann_lock`** que protege todas las operaciones sobre el xarray `ksmbd_chann_list` y cierra la ventana de carrera entre buscar y borrar canales.

Qué conviene hacer:

- **Actualiza el kernel** a una versión con la corrección (6.18.11 o posterior dentro de su serie, y los retroportes correspondientes en ramas estables y LTS). Aplica las actualizaciones de seguridad de tu distribución en cuanto salgan.
- Si no puedes parchear ya y **no necesitas ksmbd**, descarga el módulo o para el servicio, o **desactiva SMB3 multichannel** en la configuración del servidor para reducir lo que queda expuesto.
- Restringe el acceso al puerto SMB (TCP/445) a redes de confianza con un cortafuegos.

Si llevas un servidor de archivos sobre ksmbd, dale prioridad a esta actualización. Aislar servicios y aplicar el principio de mínimo privilegio (por ejemplo con módulos como los que comentamos en nuestra guía de [SELinux y AppArmor](/articulos/selinux-y-apparmor)) ayuda a contener el daño de fallos así, aunque no sustituye al parche.

Tienes el estado de soporte y las versiones del kernel en nuestra ficha de [Linux kernel](/linux-kernel).

## Fuente

- NVD — NIST National Vulnerability Database: <https://nvd.nist.gov/vuln/detail/CVE-2026-23226>
- Detalle CVE: <https://nvd.nist.gov/vuln/detail/CVE-2026-23226>
