Las imágenes de este artículo han sido generadas con inteligencia artificial. Cómo publicamos
Durante las últimas semanas se ha descubierto un fallo de corrupción de memoria en el decodificador C de Brotli —el algoritmo de compresión desarrollado por Google— que se propaga a los programas que incluyen esa implementación para descomprimir datos con Content-Encoding: br. El problema, registrado como CVE-2026-111497, permite que datos Brotli manipulados escriban más allá del final de un búfer y alteren la memoria del proceso vulnerable. En la práctica esto puede provocar bloqueos, fugas de memoria o, en escenarios favorables al atacante, la ejecución de código arbitrario.
Hechos confirmados: el defecto reside en el código C que descomprime flujos Brotli y, puesto que muchas aplicaciones y runtimes incorporan una copia local de ese código, la vulnerabilidad aparece en múltiples proyectos de forma independiente. Entre los afectados reportados están Node.js (parcheado), el runtime Bun, paquetes Python como Brotli y brotlicffi, y proxies como Envoy cuando la descompresión Brotli está activada. El fallo fue divulgado públicamente el 21 de octubre, con parches ya disponibles en algunos productos; sin embargo, cada proyecto debe actualizar su propia copia del decodificador porque no existe una única biblioteca compartida que se actualice globalmente. El repositorio oficial del proyecto se encuentra en https://github.com/google/brotli.

Cómo funciona técnicamente (resumen): Brotli opera con estructuras internas y ventanas deslizantes para reconstruir datos comprimidos. El bug es una corrupción de memoria clásica en C: una ruta de descompresión permite que entradas malformadas hagan que el algoritmo copie datos más allá de la memoria prevista para un búfer. Esto puede sobrescribir metadatos del proceso o datos críticos en la pila/heap. El efecto final depende del layout de memoria, protecciones del sistema (ASLR, DEP), y del binario concreto que contiene el decodificador; por eso el mismo defecto puede ser explotable en una build y no explotable en otra.
Qué se ha demostrado y qué no: el equipo de investigación de Imperva logró ejecutar código en una build no modificada de Node.js 24.22.0 para Linux ARM64 usando Brotli malicioso, tanto cuando el payload llegaba como respuesta fetch() como cuando se enviaba en el cuerpo de una petición Express. El exploit requirió varios intentos, no se ha publicado el PoC y los autores no afirmaron que funcione en otras builds o plataformas. OpenAI y otras firmas han confirmado que la vulnerabilidad puede dar lugar a ejecución remota en ciertas condiciones, pero no hay informes verificados de explotación en entornos reales hasta la fecha; CISA registró explotación como "ninguna". En resumen: existe una prueba de concepto privada para una configuración concreta de Node.js, mientras que la explotación en el resto del ecosistema sigue siendo incierta.
A quién afecta: cualquier software que descomprima Brotli con el decodificador C vulnerable y reciba datos controlados por un tercero. Ejemplos prácticos: en Node.js y Bun la exposición aparece cuando fetch() procesa una respuesta con Content-Encoding: br o cuando middleware como Express 5 o body-parser 2 descomprimen un cuerpo enviado por el cliente. Envoy o Istio sólo están en riesgo si la descompresión Brotli está activada (por ejemplo mediante un filtro); si está desactivada, la ruta de ataque queda cerrada. En Python la situación es más insidiosa: la mera presencia de los paquetes Brotli o brotlicffi en el entorno hace que clientes HTTP populares (requests, urllib3, httpx, aiohttp) puedan descomprimir respuestas Brotli de forma automática, por lo que una aplicación puede quedar expuesta sin importar si su código importa explícitamente Brotli. Las páginas de los paquetes en PyPI están en https://pypi.org/project/Brotli/ y https://pypi.org/project/brotlicffi/.
Consecuencias reales: dependiendo de la aplicación y de las mitigaciones del sistema, un atacante podría causar denegación de servicio (crash), filtrar memoria sensible o, en el peor caso, obtener ejecución remota dentro del proceso vulnerable. El impacto operativo es concreto: actualizaciones por producto, reinicios de servicios y reconstrucción de contenedores son necesarios porque un proceso que no se reinicie sigue usando la versión antigua del decodificador en memoria.
Medidas concretas que deben tomar administradores y desarrolladores (confirmadas y prácticas): 1) Actualizar cuanto antes el runtime o la librería a las versiones parcheadas publicadas por cada proyecto y reiniciar los procesos afectados; en entornos con contenedores, reconstruir las imágenes para que el binario parcheado esté presente al arrancar. 2) Si no puede actualizar de inmediato, deje de aceptar o procesar Brotli no fiable: rechace solicitudes entrantes que lleven Content-Encoding: br antes de que cualquier proxy o parser intente descomprimir el cuerpo. 3) Para clientes HTTP en los que controlar el comportamiento sea posible: desactive la descompresión automática de Brotli y, si procede, desinstale los paquetes Brotli/brotlicffi en entornos Python para forzar la caída a gzip/deflate. Importante: eliminar "br" del encabezado Accept-Encoding no garantiza protección —un servidor puede ignorar el encabezado y responder con Brotli—; por eso la recomendación es bloquear o rechazar explícitamente respuestas con Content-Encoding: br en la entrada/salida que controle.

Pasos específicos por plataforma (estado y recomendaciones): Node.js y Bun: actualizar a las versiones oficiales parcheadas. En Node.js no existe un workaround documentado que sustituya a la actualización; reiniciar el runtime es obligatorio. Envoy/Istio: actualizar a las versiones que incluyen la corrección o desactivar el filtro de descompresión Brotli si no es imprescindible. Python: eliminar los paquetes Brotli y brotlicffi del entorno si no puede instalar la versión parcheada de inmediato; además, configurar explicitamente clientes HTTP para no descomprimir respuestas br. Sistemas operativos y paquetes del sistema: las distribuciones corrigen sus paquetes en momentos distintos —por ejemplo, Debian publicó una corrección para brotli en Debian 13 el 23 de octubre en la versión 1.1.0-2+deb13u1— pero verifique la política de su distro y actualice.
Advertencias y elementos aún inciertos: aunque existe evidencia privada de ejecución de código en una build concreta de Node.js, no hay prueba pública sencilla de exploit que funcione en todas las plataformas. Las puntuaciones de gravedad varían entre proveedores: Google asignó una nota crítica (CVSS 4.0 9.2), mientras otros proyectos lo han catalogado como alto o importante según su propio contexto. Además, las herramientas de análisis de dependencias podrían no detectar automáticamente la condición en entornos Python, porque el CVE apunta al repositorio de Brotli y no originalmente a los paquetes PyPI; por ello es recomendable comprobar manualmente las versiones instaladas y las entradas de seguridad publicadas por los proyectos que utilice.
En resumen: el vector es claro y el remedio también —actualizar y reiniciar— pero la fragmentación del ecosistema (cada producto empaqueta su propia copia del decodificador) obliga a un esfuerzo coordinado por parte de administradores, desarrolladores y equipos de seguridad. Para instrucciones y referencias técnicas directas consulte las fuentes originales del proyecto Brotli en GitHub (github.com/google/brotli) y las páginas oficiales de los paquetes Python en PyPI (Brotli, brotlicffi), además de las alertas de seguridad de sus runtimes y distribuciones.
Relacionadas
Mas noticias del mismo tema.

953 tiendas afectadas por loader externo en bloques CMS de Magento y fingerprinting
Un actor desconocido ha comprometido al menos 953 tiendas online —la mayoría basadas en Magento— en una campaña persistente que Sansec, la firma neerlandesa de seguridad en come...

Wasmtime corrige dos fallos graves en Cranelift (CVE-2026-115889, CVE-2026-115893)
En las últimas semanas se corrigieron dos fallos graves en Wasmtime, el entorno de ejecución de WebAssembly que se integra en programas fuera del navegador. Los mantenedores cal...

Forever Security detecta AGENTS.md en Downloads que intenta instalar el paquete npm function-color
La firma de seguridad Forever Security reportó la detección de un intento de compromiso en el equipo de un cliente: un archivo de texto llamado AGENTS.md, colocado en la carpeta...

Informe detalla posible escalada a root mediante Tailscale SSH en laboratorio
Una investigadora de seguridad publicó esta semana un informe que describe cómo, en laboratorio, un dispositivo ya controlado dentro de una red Tailscale puede usarse para obten...

OpenAI reanuda el entrenamiento frontier sin acceso en vivo a Internet tras hallazgos de seguridad
OpenAI ha anunciado que reanudará el entrenamiento por refuerzo (RL) y la inferencia interna de sus modelos más avanzados, pero lo hará con una restricción clara: el entrenamien...

BlackX, bootkit UEFI, ataca misiones diplomáticas de Tayikistán, Uzbekistán y Turkmenistán
En las primeras semanas de 2026, organizaciones diplomáticas en Asia Central —concretamente en Tayikistán, Uzbekistán y Turkmenistán— fueron atacadas con un nuevo bootkit UEFI a...

Campaña de k0t explota dispositivos de borde expuestos para robar credenciales y moverse
Investigadores de ciberseguridad han documentado una campaña a gran escala que ha explotado dispositivos de borde de red expuestos —en particular appliances de VPN y firewalls— ...