El subsistema netfilter nf_tables del kernel Linux s’encarrega del filtratge de paquets i sosté tot el que fa nftables. Acaba de sumar una falla greu més: CVE-2026-23111. És un use-after-free (ús de memòria ja alliberada) que deixa un usuari local sense privilegis arribar fins a root. El més curiós és que tant l’error com el seu arranjament caben en un únic caràcter de codi.
Què és la vulnerabilitat
El bug és a la funció nft_map_catchall_activate(), dins del fitxer net/netfilter/nf_tables_api.c. Quan s’avorta una transacció de nftables, aquesta funció arrossega una condició invertida: processa els elements actius i es salta els inactius, just al revés del que fa la versió correcta, nft_mapelem_activate().
La conseqüència és discreta però perillosa. En avortar una operació DELSET, no es torna a cridar nft_setelem_data_activate() per a l’element catchall. Amb elements de veredicte NFT_GOTO, això es tradueix en que mai es restaura el comptador de referències chain->use. Cada cicle d’avortament deixa aquest comptador un punt més baix, i de manera permanent. Quan chain->use toca zero, una operació DELCHAIN allibera la cadena tot i que els elements catchall encara hi apunten, i aquí surt el use-after-free.
Des d’aquest punt, un atacant pot filtrar l’adreça base del kernel, després una adreça de heap, i rematar amb una cadena ROP que pivota sobre objectes msg_msg fins a fer-se amb privilegis de root.
A qui afecta
La falla toca moltes branques del kernel Linux: hi ha versions afectades des de la sèrie 5.4 fins a la 6.18.10, passant per 5.10, 5.15, 6.1, 6.6 i 6.12. A la pràctica, els sistemes vulnerables són els que porten activades CONFIG_USER_NS (espais de noms d’usuari) i CONFIG_NF_TABLES, una cosa de lo més normal a distribucions d’escriptori i de servidor. L’explotació s’ha demostrat a Debian Bookworm, Debian Trixie, Ubuntu 22.04 LTS i Ubuntu 24.04 LTS.
I aquí hi ha el quid: els espais de noms d’usuari deixen que algú sense privilegis manipuli nftables dins del seu propi namespace, cosa que tira a terra la barrera de sempre, la de “has de ser root per tocar netfilter”.
Gravetat
El CVSS 3.1 és 7.8 (alta), amb vector AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Demana accés local i privilegis baixos, sense interacció de l’usuari. La gravetat puja de nivell perquè, després de publicar-se el pedaç el 5 de febrer de 2026, van sortir a la llum exploits funcionals públics i proves de concepte que reprodueixen l’escalada a root sense despentinar-se.
Mitigació i pedaç
El pedaç upstream, aplicat el 5 de febrer de 2026, es redueix a treure un signe de negació (!) perquè la comprovació casi amb la de nft_mapelem_activate(): saltar-se els elements actius i processar els inactius.
Què fer ja:
- Actualitza el kernel a una versió amb pedaç (per exemple 5.10.249, 6.1.162, 6.6.122 o 6.12.71 o posteriors) i reinicia.
- Si no pots aplicar el pedaç ara mateix, desactiva els espais de noms d’usuari no privilegiats mentre no els facis servir:
sysctl -w kernel.unprivileged_userns_clone=0(en kernels Debian/Ubuntu) osysctl -w user.max_user_namespaces=0. - Planteja’t carregar mòduls de seguretat com SELinux o AppArmor per retallar la superfície d’atac dels processos compromesos.
Com que aquesta vulnerabilitat s’apoia en els espais de noms d’usuari, val la pena entendre bé aquesta tecnologia al nostre article sobre namespaces i cgroups, i estrènyer la contenció de processos amb SELinux i AppArmor.
Pots consultar la fitxa del component afectat a /ca/linux-kernel.
Font
- NVD - NIST: https://nvd.nist.gov/vuln/detail/CVE-2026-23111