L’acció gate del subsistema de control de trànsit (net/sched) del kernel Linux arrossegava una condició de cursa que ha quedat registrada com a CVE-2026-23245. El problema és a net/sched/act_gate.c i permetia que un usuari local amb permisos per configurar el control de trànsit provoqués accessos a memòria inconsistents dins del kernel.
Què fa l’acció gate i on falla
L’acció gate forma part de Time-Aware Shaping, el mecanisme que obre i tanca “portes” de transmissió segons una agenda temporal (lligat a TSN, xarxes amb temps garantit). Aquesta agenda és una llista d’entrades que el kernel recorre periòdicament des d’un hrtimer, i que també es llegeix quan algú fa un dump de la configuració del control de trànsit.
L’error apareix quan l’acció es reemplaça en calent. Si un usuari substitueix l’acció gate mentre el callback del timer o la ruta de dump estan recorrent la llista del schedule, el codi alliberava o canviava aquests paràmetres sense prou sincronització. Un fil llegia estructures que un altre estava modificant o alliberant. El resultat és accés a memòria inconsistent, amb possibilitat de corrupció i caiguda del sistema.
A qui afecta
Afecta sistemes Linux amb la pila de control de trànsit habilitada i l’acció gate disponible, una cosa habitual en kernels de propòsit general. Segons les dades de NVD el rang de versions vulnerables és ampli:
- 5.8 fins a 5.10.252
- 5.11 fins a 6.1.166
- 6.2 fins a 6.6.129
- 6.7 fins a 6.12.77
- 6.13 fins a 6.18.17
- 6.19 fins a 6.19.7
El vector és local: AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Cal un compte a la màquina i permís per manipular el control de trànsit (la capacitat CAP_NET_ADMIN, normalment dins d’un namespace de xarxa). No és un error explotable a cegues des d’Internet, però en entorns multiusuari o amb contenidors que reben CAP_NET_ADMIN el risc és real. Pertany a la mateixa família que altres curses i use-after-free del kernel pegats el mateix mes, com el use-after-free al subsistema TLS de CVE-2026-23240.
Gravetat
El CVSS 3.1 assignat per kernel.org és 7.8 (alta), amb impacte alt en confidencialitat, integritat i disponibilitat. La condició de cursa pot derivar en lectura de memòria que no correspon o en una caiguda del kernel. Les curses d’aquest tipus són delicades: depenen de la sincronització exacta entre el timer i la substitució de l’acció, cosa que complica un exploit fiable, però no el descarta.
Mitigació i pegat
La correcció canvia com es manegen els paràmetres del schedule. En lloc de tocar la llista en viu, introdueix snapshots protegits per RCU: els paràmetres nous s’intercanvien sota el bloqueig tcf_lock i els antics s’alliberen de manera diferida mitjançant call_rcu(). Així, qualsevol lector que estigués recorrent la versió anterior la continua veient intacta fins que acaba, i l’alliberament només passa quan ja no hi queda ningú fent-la servir.
El que cal fer és actualitzar el kernel a una versió amb el pegat. Hi ha set commits de backport publicats a git.kernel.org que cobreixen les branques estables afectades, així que la majoria de distribucions els recullen a les seves actualitzacions de kernel de març de 2026 endavant. Comprova l’avís de la teva distribució (Debian, Ubuntu, SUSE) i aplica la versió corregida. Si per algun motiu no pots pegar de seguida, limitar qui té CAP_NET_ADMIN i revisar els contenidors amb aquesta capacitat redueix la superfície exposada. El kernel funciona a la majoria de distribucions; consulta la pàgina del kernel Linux per als detalls de versions.