← Volver a artículos
Seguridad· 3 min de lectura

FreeBSD corrige un fallo en libcap_net que dejaba ampliar permisos de red en sandbox Capsicum (CVE-2026-45254)

El proyecto FreeBSD publicó el aviso FreeBSD-SA-26:24.cap_net el 20 de mayo de 2026 para corregir CVE-2026-45254, un fallo en libcap_net que rompía una de las garantías básicas de Capsicum: que un proceso solo puede recortar sus permisos, nunca ampliarlos.

Qué es Capsicum y dónde encaja libcap_net

Capsicum es el sistema de aislamiento por capacidades de FreeBSD. Una aplicación entra en “modo capacidad” y a partir de ahí pierde el acceso global al sistema: solo puede operar sobre los descriptores y capacidades que ya tenía. Como dentro de ese modo no se pueden hacer llamadas como connect() o resolver nombres directamente, FreeBSD ofrece servicios de Casper (libcasper). Uno de ellos es libcap_net, que actúa de intermediario para las operaciones de red: la aplicación en sandbox le pide al proceso Casper que resuelva un host o abra una conexión, y este aplica los límites que se hayan configurado.

La idea es que esos límites se pueden estrechar sobre la marcha. Si una app empieza pudiendo resolver nombres y conectar, puede pedir un nuevo límite que solo permita resolver, y a partir de ahí ya no debería poder conectar. Esa restricción progresiva es lo que sostiene el modelo.

El fallo

Cuando la aplicación pedía un nuevo conjunto de límites, libcap_net comparaba la petición con el límite anterior. El problema estaba en cómo trataba las claves ausentes. Si una clave presente en el límite antiguo no aparecía en el nuevo, el código la interpretaba como “permitir cualquiera” en lugar de rechazarla.

El efecto es el contrario al esperado. Omitir una restricción no la dejaba intacta ni la denegaba, sino que la abría del todo. Una aplicación que ya había limitado un subconjunto de operaciones de red podía solicitar un nuevo límite que, lejos de estrechar, ampliaba sus permisos. En la práctica eso permite a código dentro del sandbox saltarse las restricciones de red que el desarrollador creía estar aplicando.

A quién afecta y gravedad

Afecta a todas las versiones soportadas de FreeBSD, pero solo al software que use libcap_net/libcasper para mediar el acceso a red dentro de un sandbox Capsicum. El sistema base no incluye programas afectados, así que el riesgo recae en aplicaciones de terceros que hayan adoptado este patrón de aislamiento. FreeBSD clasifica la gravedad como media: no es una escalada a root ni un RCE remoto, sino una elevación de privilegios de red dentro del propio proceso sandbox, condicionada a que la aplicación dependa de libcap_net para confinarse.

Está en la misma tanda de avisos de mayo que otros fallos de kernel más serios en FreeBSD, como la escalada de privilegios vía Linuxulator y LD_PRELOAD. Si gestionas servidores FreeBSD, conviene revisar el conjunto entero.

Mitigación

No hay workaround: la única solución es parchear. Las correcciones salieron el 20 de mayo de 2026 en stable/15 y 15.0-RELEASE-p9, y en stable/14, 14.4-RELEASE-p5 y 14.3-RELEASE-p14.

Para sistemas con freebsd-update, basta con actualizar y reiniciar los demonios afectados:

freebsd-update fetch
freebsd-update install

Si compilas desde fuentes, aplica el parche oficial (SA-26:24/cap_net.patch), recompila con buildworld/installworld y reinicia los procesos que usen libcap_net. Más detalles del sistema base en la ficha de FreeBSD.

Fuente