Fragnesia es el tercer fallo de root local que aparece en la misma zona del kernel Linux en apenas dos semanas, y posiblemente el más feo de los tres. Lo descubrió William Bowling, del equipo V12, y AlmaLinux publicó el aviso y los kernels corregidos el 13 de mayo de 2026. Cuando se hizo público ya circulaba una prueba de concepto funcional, así que no es un problema teórico.
Dónde está el fallo
El bug vive en skb_try_coalesce(), una función del código core de los socket buffers (los sk_buff, la estructura con la que el kernel maneja cada paquete de red). Cuando el kernel intenta fusionar dos buffers para ahorrar memoria, esa función transfiere los fragmentos paginados de uno a otro. El problema es que no propaga el marcador SKBFL_SHARED_FRAG durante esa transferencia.
Ese marcador es la forma que tiene el kernel de recordar que un fragmento está respaldado por memoria externa, por ejemplo páginas del page cache que vienen directamente de un fichero en disco. Si el marcador se pierde, el kernel cree que esos fragmentos son suyos y los trata como memoria normal que puede modificar a su antojo.
Cómo se convierte en root
La ruta de recepción ESP-in-TCP del subsistema XFRM hace descifrado AES-GCM in-place, es decir, sobre las mismas páginas donde están los datos. Si esas páginas son páginas del page cache de un fichero de solo lectura, y el kernel ha perdido el rastro de que son externas, el atacante consigue una primitiva muy potente: puede hacer XOR de un keystream elegido sobre el contenido de ese fichero.
El blanco evidente es un binario setuid como /usr/bin/su. Modificando sus páginas en el page cache, un proceso sin privilegios reescribe código que luego se ejecuta como root. De ahí el salto a root completo sin tocar exploits de corrupción de memoria clásicos: aquí la primitiva es directamente una escritura controlada sobre ficheros del sistema.
A quién afecta
El fallo está en los módulos esp4, esp6 y rxrpc, y en el código core de socket buffers que comparten. Según AlmaLinux, todas sus versiones soportadas (8, 9 y 10) eran vulnerables. Por la naturaleza del código afectado, cualquier kernel Linux con esos módulos cargables está en el mismo grupo de riesgo, no solo AlmaLinux. Para revisar el estado de las ramas soportadas puedes consultar nuestra ficha de AlmaLinux.
Parche y mitigación
Lo correcto es actualizar el kernel y reiniciar. Las versiones corregidas que publicó AlmaLinux son:
- AlmaLinux 8:
kernel-4.18.0-553.124.3.el8_10o posterior - AlmaLinux 9:
kernel-5.14.0-611.54.5.el9_7o posterior - AlmaLinux 10:
kernel-6.12.0-124.56.3.el10_1o posterior
Si no puedes reiniciar de inmediato, la mitigación provisional es bloquear la carga de los módulos afectados. Crea un fichero como /etc/modprobe.d/fragnesia.conf con líneas blacklist esp4, blacklist esp6 y blacklist rxrpc, ten en cuenta que esto rompe IPsec ESP si lo usas. Es un parche temporal hasta tener el kernel nuevo instalado y reiniciado.
Si te interesa cómo se explotan los problemas de aislamiento y descifrado a nivel de kernel, en su día cubrimos un caso emparentado en VMSCAPE (CVE-2025-40300).
Fuente
- AlmaLinux Blog — Fragnesia (CVE-2026-46300): https://almalinux.org/blog/2026-05-13-fragnesia-cve-2026-46300/
- NVD — CVE-2026-46300: https://nvd.nist.gov/vuln/detail/CVE-2026-46300