Un administrador de FreeBSD puede cerrar el fallo de Brotli CVE-2026-111497, explotado activamente según la agencia estadounidense CISA, con cuatro comandos y una sola actualización de paquete, porque los 64 paquetes del repositorio de FreeBSD 15 que usan Brotli enlazan la misma biblioteca compartida. Así lo detalla Vivian Voss en un análisis que opensecurity ha recogido y que sirve como guía práctica para quien gestiona servidores con pkg.
Las claves de corregir el fallo de Brotli en servidores FreeBSD en 20 segundos
- El fallo afecta a Brotli anterior a 1.2.1 y CISA lo marcó como explotado el 27/10/2026.
- En FreeBSD basta con
pkg audit -F,pkg shlib -R,pkg upgradeyservice -R. - Las copias de Brotli integradas en paquetes de pip y aplicaciones Electron, y cada jail, siguen necesitando su propia revisión.
El fallo es una escritura fuera de límites en el decodificador de Brotli, la biblioteca de compresión de Google, que un atacante sin autenticar puede explotar con datos comprimidos manipulados. El Centro Canadiense de Ciberseguridad lo sitúa en las versiones anteriores a 1.0.10, 1.1.1 y 1.2.1, y lo extiende a Node.js, .NET, PowerShell, Bun, Envoy o Istio. La recomendación general es localizar todas las instalaciones de Brotli, empezando por los sistemas expuestos a Internet, y actualizar.
El procedimiento, paso a paso
En un servidor FreeBSD, ese inventario lo hace el gestor de paquetes. Primero, pkg audit -F descarga la base de datos de vulnerabilidades del proyecto y avisa de que el paquete de Brotli instalado está afectado; según Voss, la entrada para versiones anteriores a 1.2.1 se publicó el 22 de octubre. Después, pkg shlib -R seguido del nombre de la biblioteca de Brotli muestra qué paquetes la requieren, entre ellos node24, curl, apache24 o freetype2.
El tercer paso es pkg upgrade. Su página de manual explica que todos los paquetes que requieren la biblioteca compartida actualizada se añaden a la lista de trabajo como tareas de reinstalación, así que no hace falta perseguirlos uno a uno. Por último, service -R reinicia los servicios locales para que ningún proceso siga ejecutando el código antiguo cargado en memoria, un detalle que se olvida a menudo tras actualizar bibliotecas.
Por qué funciona y dónde se queda corto
El método se apoya en una regla de los ports: el manual para quienes los mantienen desaconseja las bibliotecas integradas porque una corrección del proyecto original puede no llegar a la copia que lleva cada programa, y por eso los ports usan la biblioteca del sistema mediante LIB_DEPENDS. Node.js integra Brotli por defecto y el port lo compila con --shared-brotli. El resultado, según Voss, es que el paquete node24 seguía en la versión 24.21.0, sin las correcciones propias de Node.js de octubre, pero con Brotli ya corregido. La versión de Node.js que corrige el fallo en esa rama es la 24.22.1, según Help Net Security, así que conviene actualizar node24 cuando llegue al repositorio.
Hay límites. Los paquetes wheel de Python instalados con pip y las aplicaciones Electron llevan sus propias copias también en FreeBSD; los paquetes binarios van unos días por detrás del árbol de ports; cada jail tiene que ejecutar su propio pkg upgrade contra el repositorio, y las excepciones a la regla, como Wine, necesitan el visto bueno del equipo de ports. En Linux, Debian también comparte la biblioteca y la ha corregido, pero quien instala el binario oficial de Node.js recibe una copia integrada que depende de la publicación de Node. Administración de Sistemas ya mostró otro ejemplo de este enfoque minimalista con FreeBSD leyendo la configuración de cloud-init sin 46 paquetes adicionales.
Preguntas frecuentes
¿Cómo se comprueba si un servidor FreeBSD está afectado por el fallo de Brotli?
Con pkg audit -F, que descarga la base de datos de vulnerabilidades y la compara con los paquetes instalados.
¿Hay que actualizar cada paquete que usa Brotli?
No. pkg upgrade actualiza la biblioteca compartida y añade a la lista de reinstalación todos los paquetes que la requieren.
¿Por qué hay que reiniciar los servicios?
Porque los procesos en marcha mantienen en memoria la versión antigua de la biblioteca hasta que se reinician, por ejemplo con service -R.
¿Qué no cubre pkg upgrade?
Las copias integradas en paquetes de pip o aplicaciones Electron, y cada jail, que necesita su propia actualización.
Fuentes:






