← Tornar als articles
Seguretat· 3 min de lectura

Fragnesia (CVE-2026-46300): un error a skb_try_coalesce dóna root local al kernel Linux

Fragnesia és el tercer error de root local que apareix a la mateixa zona del kernel Linux en poc més de dues setmanes, i probablement el més lleig dels tres. El va trobar en William Bowling, de l’equip V12, i AlmaLinux va publicar l’avís i els kernels corregits el 13 de maig de 2026. Quan es va fer públic ja circulava una prova de concepte que funcionava, així que no és un problema teòric.

On és l’error

L’error viu a skb_try_coalesce(), una funció del codi core dels socket buffers (les estructures sk_buff amb què el kernel maneja cada paquet de xarxa). Quan el kernel intenta fusionar dos buffers per estalviar memòria, aquesta funció trasllada els fragments paginats d’un buffer a l’altre. El problema és que no propaga el marcador SKBFL_SHARED_FRAG durant la transferència.

Aquest marcador és la manera que té el kernel de recordar que un fragment està suportat per memòria externa, per exemple pàgines del page cache que vénen directament d’un fitxer al disc. Si el marcador es perd, el kernel es pensa que aquests fragments són seus i els tracta com a memòria normal que pot modificar a voluntat.

Com es converteix en root

La ruta de recepció ESP-in-TCP del subsistema XFRM fa desxifrat AES-GCM in-place, és a dir, sobre les mateixes pàgines on hi ha les dades. Si aquestes pàgines són pàgines del page cache d’un fitxer de només lectura, i el kernel ha perdut el rastre que són externes, l’atacant aconsegueix una primitiva molt potent: pot fer XOR d’un keystream triat sobre el contingut d’aquell fitxer.

El blanc evident és un binari setuid com /usr/bin/su. Modificant les seves pàgines al page cache, un procés sense privilegis reescriu codi que després s’executa com a root. Aquí està el salt a root complet sense cap exploit de corrupció de memòria clàssic. La primitiva és directament una escriptura controlada sobre fitxers del sistema.

A qui afecta

L’error és als mòduls esp4, esp6 i rxrpc, i al codi core de socket buffers que comparteixen. Segons AlmaLinux, totes les seves versions suportades (8, 9 i 10) eren vulnerables. Per la natura del codi afectat, qualsevol kernel Linux amb aquests mòduls carregables està al mateix grup de risc, no només AlmaLinux. Pots revisar l’estat de les branques suportades a la nostra fitxa d’AlmaLinux.

Pegat i mitigació

El correcte és actualitzar el kernel i reiniciar. Les versions corregides que va publicar AlmaLinux són:

  • AlmaLinux 8: kernel-4.18.0-553.124.3.el8_10 o posterior
  • AlmaLinux 9: kernel-5.14.0-611.54.5.el9_7 o posterior
  • AlmaLinux 10: kernel-6.12.0-124.56.3.el10_1 o posterior

Si no pots reiniciar de seguida, la mitigació provisional és bloquejar la càrrega dels mòduls afectats. Crea un fitxer com /etc/modprobe.d/fragnesia.conf amb línies blacklist esp4, blacklist esp6 i blacklist rxrpc, tingues en compte que això trenca IPsec ESP si l’utilitzes. És un pegat temporal fins a tenir el kernel nou instal·lat i reiniciat.

Si t’interessa com s’exploten els problemes d’aïllament i desxifrat a nivell de kernel, en el seu moment vam cobrir un cas emparentat a VMSCAPE (CVE-2025-40300).

Font