Vulnerabilidad en Linux (CVE-2026-23111)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
13/02/2026
Última modificación:
13/02/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
netfilter: nf_tables: corrección de la comprobación genmask invertida en nft_map_catchall_activate()<br />
<br />
nft_map_catchall_activate() tiene una comprobación de actividad de elemento invertida en comparación con su contraparte no-catchall nft_mapelem_activate() y en comparación con lo que se requiere lógicamente.<br />
<br />
nft_map_catchall_activate() es llamada desde la ruta de aborto para reactivar elementos de mapa catchall que fueron desactivados durante una transacción fallida. Debería omitir los elementos que ya están activos (no necesitan reactivación) y procesar los elementos que están inactivos (necesitan ser restaurados). En cambio, el código actual hace lo contrario: omite los elementos inactivos y procesa los activos.<br />
<br />
Compare la devolución de llamada de activación no-catchall, que es correcta:<br />
<br />
nft_mapelem_activate():<br />
if (nft_set_elem_active(ext, iter-&gt;genmask))<br />
return 0; /* omitir activos, procesar inactivos */<br />
<br />
Con la versión catchall con errores:<br />
<br />
nft_map_catchall_activate():<br />
if (!nft_set_elem_active(ext, genmask))<br />
continue; /* omitir inactivos, procesar activos */<br />
<br />
La consecuencia es que cuando una operación DELSET es abortada, nft_setelem_data_activate() nunca es llamada para el elemento catchall. Para los elementos de veredicto NFT_GOTO, esto significa que nft_data_hold() nunca es llamada para restaurar el contador de referencias chain-&gt;use. Cada ciclo de aborto decrementa permanentemente chain-&gt;use. Una vez que chain-&gt;use llega a cero, DELCHAIN tiene éxito y libera la cadena mientras que los elementos de veredicto catchall aún la referencian, resultando en un uso después de liberación.<br />
<br />
Esto es explotable para escalada de privilegios local desde un usuario sin privilegios a través de espacios de nombres de usuario + nftables en distribuciones que habilitan CONFIG_USER_NS y CONFIG_NF_TABLES.<br />
<br />
Corrección eliminando la negación para que la comprobación coincida con nft_mapelem_activate(): omitir elementos activos, procesar inactivos.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/1444ff890b4653add12f734ffeffc173d42862dd
- https://git.kernel.org/stable/c/42c574c1504aa089a0a142e4c13859327570473d
- https://git.kernel.org/stable/c/8b68a45f9722f2babe9e7bad00aa74638addf081
- https://git.kernel.org/stable/c/8c760ba4e36c750379d13569f23f5a6e185333f5
- https://git.kernel.org/stable/c/b9b6573421de51829f7ec1cce76d85f5f6fbbd7f
- https://git.kernel.org/stable/c/f41c5d151078c5348271ffaf8e7410d96f2d82f8



