---
service: "Publicasta"
schema_version: "1.0"
article_id: 1137
title: "CVE-2026-111497 en Brotli: por qué los equipos deben inventariar decodificadores, no solo Node.js"
language: "es"
default_language: "en"
canonical_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497?lang=es"
json_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.json?lang=es"
api_url: "https://publicasta.com/api/public/v1/channels/cybersecurity/articles/brotli_decoder_dependency_inventory_cve_2026_111497?lang=es"
channel_url: "https://publicasta.com/api/public/v1/channels/cybersecurity"
channel_articles: "https://publicasta.com/api/public/v1/channels/cybersecurity/articles"
search_url: "https://publicasta.com/api/public/v1/search"
documentation_url: "https://publicasta.com/api-docs#reading-publicasta"
openapi_url: "https://publicasta.com/api-docs/openapi.json"
published_at: "2026-11-05T13:52:49+00:00"
updated_at: "2026-11-05T13:52:49+00:00"
translations:
  - language: "ar"
    html_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497?lang=ar"
    markdown_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.md?lang=ar"
    json_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.json?lang=ar"
  - language: "de"
    html_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497?lang=de"
    markdown_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.md?lang=de"
    json_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.json?lang=de"
  - language: "en"
    html_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497?lang=en"
    markdown_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.md?lang=en"
    json_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.json?lang=en"
  - language: "es"
    html_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497?lang=es"
    markdown_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.md?lang=es"
    json_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.json?lang=es"
  - language: "fr"
    html_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497?lang=fr"
    markdown_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.md?lang=fr"
    json_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.json?lang=fr"
  - language: "pl"
    html_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497?lang=pl"
    markdown_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.md?lang=pl"
    json_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.json?lang=pl"
  - language: "ru"
    html_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497?lang=ru"
    markdown_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.md?lang=ru"
    json_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.json?lang=ru"
  - language: "zh"
    html_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497?lang=zh"
    markdown_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.md?lang=zh"
    json_url: "https://publicasta.com/cybersecurity/brotli_decoder_dependency_inventory_cve_2026_111497.json?lang=zh"
---

# CVE-2026-111497 en Brotli: por qué los equipos deben inventariar decodificadores, no solo Node.js

> Una actualización de Cisco del 5 de noviembre muestra cómo un fallo en un decodificador Brotli puede atravesar los límites entre productos. La respuesta práctica es identificar bibliotecas integradas, rutas de decodificación expuestas y correcciones en runtimes y appliances.

## Qué afecta realmente CVE-2026-111497

 ![Un especialista en ciberseguridad revisa una canalización protegida de dependencias del decodificador Brotli entre servidores, contenedores y capas de software.](https://publicasta.com/storage/projects/9/pages/1137/2026/11/92ed2433-dc20-4814-acaf-bf2309f645f4.webp)

 CVE-2026-111497 es una escritura fuera de límites en el decodificador Brotli de Google. El defecto se alcanza cuando una aplicación vulnerable descomprime un flujo Brotli manipulado: el decodificador procesa un cambio de bloque no válido como si solo necesitara más entrada y continúa agregando bytes a un búfer interno de ocho bytes. Así, la entrada puede superar el límite de memoria previsto. En Node.js, el código afectado está integrado en el módulo `zlib` del runtime, por lo que una aplicación que use descompresión Brotli puede quedar expuesta sin instalar un paquete independiente llamado `brotli`.

 El [aviso de seguridad de Node.js](https://nodejs.org/en/blog/vulnerability/october-2026-security-releases) describe directamente la consecuencia. Un atacante que pueda proporcionar datos Brotli que una aplicación descomprima con `node:zlib` podría corromper la memoria del proceso, lo que potencialmente provocaría un bloqueo, la divulgación de memoria del proceso o la ejecución remota de código. El aviso clasifica el problema como de alta gravedad e identifica las líneas de versiones 26.x, 24.x y 22.x de Node.js como afectadas. Por tanto, la pregunta pertinente para el responsable no es solo «¿Qué versión de Node.js está instalada?», sino también «¿Se puede obligar a este proceso en ejecución a descomprimir datos Brotli procedentes de un atacante u otro sistema no confiable?»

 Esta condición es importante porque la vulnerabilidad no equivale a poner en peligro todas las máquinas que contengan una biblioteca capaz de trabajar con Brotli. El [boletín de Red Hat](https://access.redhat.com/security/vulnerabilities/RHSB-2026-015) describe el mismo problema como un flujo manipulado capaz de corromper la memoria de una aplicación que procese entradas Brotli no confiables. Enumera posibles consecuencias como divulgación de información, denegación de servicio y ejecución arbitraria de código, aunque también señala que, en la práctica, no están afectados los entornos en los que ninguna aplicación descomprime datos Brotli procedentes de fuentes no confiables. La explotación requiere un flujo específicamente malformado; la salida normal y bien formada de un codificador común no activa el problema.

 La ubicación del decodificador es lo que hace que sea fácil subestimar el problema del inventario. Brotli se utiliza para `Content-Encoding: br` en HTTP, pero también puede aparecer como biblioteca independiente, en enlaces de Python, dentro de navegadores y otros clientes, o como parte de un producto más amplio. Red Hat identifica la biblioteca como disponible mediante paquetes como `brotli` y los enlaces Brotli de Python, y señala además que Node.js la integra como parte de `zlib`. El mismo boletín apunta a copias integradas en Firefox, Thunderbird y productos por capas. Por tanto, un inventario de software que solo registre las aplicaciones de nivel superior puede mostrar un servicio aparentemente normal y ocultar el decodificador nativo que realmente analiza los bytes comprimidos recibidos desde el exterior.

 Por eso también conviene rastrear el identificador CVE en dos niveles. El [registro de CVE](https://www.cve.org/CVERecord?id=CVE-2026-111497) nombra la vulnerabilidad subyacente, mientras que un aviso del runtime o del producto explica cómo se empaqueta, corrige o retroporta ese componente en una distribución concreta. Una actualización de Node.js puede corregir la copia integrada en Node.js, pero por sí sola no dice nada sobre una biblioteca Brotli independiente, un enlace de Python, una compilación de navegador, una imagen de appliance u otro producto que integre su propia copia. Del mismo modo, encontrar el CVE en un escáner no demuestra que la ruta de decodificación afectada sea accesible desde una fuente no confiable.

 La primera clasificación útil combina el componente y la ruta de entrada. Registre por dónde entra Brotli en el sistema, qué producto o runtime controla la copia en ejecución y si esa copia procesa respuestas de red, solicitudes HTTP, datos cargados, artefactos remotos u otros contenidos controlados fuera del límite de confianza. En Node.js, la revisión debe incluir los usos de las API de descompresión Brotli y cualquier comportamiento que decodifique automáticamente respuestas `br`. En otros productos, consulte el aviso del componente y las notas de versión del proveedor, en lugar de suponer que el nombre de un paquete o la versión de una aplicación se corresponde claramente con el binario vulnerable.

 Este enfoque mantiene separados el comportamiento confirmado y las especulaciones sobre posibles exploits. Los avisos disponibles establecen la existencia de un fallo de seguridad de memoria con consecuencias potencialmente graves cuando procesos de decodificación vulnerables reciben entradas controladas por un atacante. No establecen que todas las instalaciones estén expuestas de la misma manera ni que exista una campaña amplia de explotación confirmada. La prioridad defendible es localizar los decodificadores que sean vulnerables y además accesibles, y después verificar la versión corregida del producto que realmente los incluye. Esa es la base del inventario de dependencias necesario en la siguiente etapa.

 ## Por qué corregir Node.js no cierra toda la exposición

 Actualizar Node.js es necesario cuando una aplicación utiliza una rama de versiones afectada, pero no es una respuesta completa a CVE-2026-111497. El código vulnerable está en el decodificador C de Brotli desarrollado por Google, y Cisco señala que este componente suele incluirse o enlazarse con software más allá de Node.js. Por tanto, un producto puede heredar el mismo defecto sin presentarse como una aplicación Node.js en un inventario y sin ofrecer a los operadores un paquete de Brotli independiente que actualizar. La pregunta pertinente no es solo «¿Qué versiones de Node.js ejecutamos?». También es «¿Qué productos contienen un decodificador de Brotli y cuáles pueden llegar a descomprimir datos proporcionados por otra persona?»

 El aviso de Cisco del 5 de noviembre muestra por qué esa distinción importa en la operación diaria. Cisco está revisando los productos individualmente, en lugar de tratar toda la cartera como afectada de manera uniforme. Su tabla de productos prioritarios registra resultados distintos: Catalyst SD-WAN Software, Identity Services Engine, IOS XE Software, Secure Firewall Management Center y Secure Firewall Threat Defense aparecen como no afectados, mientras que IOS XR Software y Secure Firewall Adaptive Security Appliance Software siguen bajo investigación. Para NX-OS Software se remite a otras tablas de impacto y correcciones. Esta variación demuestra que la evaluación de un proveedor depende de cómo un producto concreto incorpora y utiliza el componente compartido, no simplemente de si el proveedor distribuye software asociado con Node.js o Brotli.

 El mismo aviso enumera productos bajo investigación activa en un amplio abanico de categorías, entre ellas observabilidad de aplicaciones, seguridad de redes y contenidos, gestión de redes, enrutamiento y conmutación, computación unificada, vídeo y colaboración, servicios inalámbricos y servicios alojados por Cisco. Esta amplitud es importante para los responsables de los activos porque la ruta de ejecución afectada puede encontrarse dentro de un dispositivo, un controlador, un dispositivo virtual, una utilidad de endpoint o un servicio conectado a la nube. El nombre del producto que aparece en una CMDB puede describir la función empresarial —como un gestor de firewalls, un controlador o una plataforma de colaboración—, mientras el decodificador vulnerable queda oculto en un entorno de ejecución, una biblioteca incluida o un componente del servicio. Por ello, un inventario convencional de aplicaciones puede ser correcto a nivel de producto y aun así no identificar el código que procesa entradas comprimidas.

 La tabla de versiones corregidas de Cisco también muestra por qué «parcheado» no puede tratarse como un único estado para toda la cartera. El aviso identifica distintas vías de corrección para productos diferentes: Duo Network Gateway se asocia con la versión 3.4.2, Duo Authentication Proxy Local Manager para Windows con la 6.8.1 y Catalyst Center con la 3.4.1. En otras entradas, el número de versión todavía está por determinar o el objetivo de lanzamiento figura como pendiente. Estas diferencias obligan a contrastar el producto exacto, la forma de implementación y la rama de versiones que opera la organización con el estado y la versión corregida indicados por el proveedor. Instalar un paquete actualizado de Node.js en un host de compilación no demuestra que una imagen de dispositivo, un servicio integrado o un producto mantenido por separado haya recibido la corrección correspondiente.

 Hay una segunda trampa de inventario en el propio flujo de datos. Un servicio puede no ofrecer una función de Brotli visible para el usuario y, aun así, descodificar Brotli al procesar contenido HTTP u otro flujo suministrado externamente. Red Hat describe la exposición en términos de que el decodificador recibe datos Brotli no confiables, y cita como ejemplos los intercambios HTTP con `Content-Encoding: br`, las API de descompresión de Node.js y las aplicaciones que llaman directamente a la biblioteca Brotli. Ese límite de evaluación resulta más útil que la mera presencia del nombre de un paquete. Los equipos deben preguntarse si el componente puede recibir bytes comprimidos controlados por un atacante, a través de qué escucha o integración, y si el producto en ejecución —no solo su manifiesto de dependencias de código fuente— contiene el decodificador vulnerable.

 Por eso un análisis de dependencias limpio también puede generar una falsa sensación de seguridad. Un lockfile puede mostrar una dependencia de la aplicación, pero omitir una biblioteca compilada dentro de un binario del proveedor. A la inversa, el inventario de paquetes del host puede mostrar un paquete Brotli del sistema aunque el servicio expuesto utilice una copia privada dentro de su propia imagen. El aviso de Cisco dirige a los administradores a los registros de errores específicos de cada producto y a las versiones de software corregidas, mientras que Red Hat señala que los productos por capas y los contenedores pueden depender de paquetes base actualizados. Por tanto, la unidad práctica de corrección es el producto desplegado y su ruta ejecutable de descodificación. Las actualizaciones de Node.js cierran el componente de Node.js allí donde están instaladas; no cierran automáticamente todos los productos de Cisco, dispositivos, contenedores o servicios que puedan incluir el mismo decodificador Brotli.

 ## El inventario defensivo que importa

 La pregunta útil no es simplemente si un servidor tiene Node.js instalado. Es qué componentes pueden descodificar datos Brotli, dónde se ejecutan y si los datos que reciben pueden estar bajo la influencia de una parte no confiable. El decodificador puede formar parte de Node.js, de una biblioteca Brotli utilizada mediante enlaces de Python, de un SDK incluido en una aplicación, de una imagen de contenedor o de un dispositivo que no ofrece al equipo de operaciones una vista evidente a nivel de paquetes. Por ello, un inventario de software convencional puede identificar la aplicación y pasar por alto la biblioteca que realiza el análisis pertinente.

 Empiece por inventariar los entornos de ejecución en lugar de buscar un único nombre de paquete. Registre las instalaciones de Node.js y las aplicaciones que las integran o dependen de ellas. Compruebe los servicios que utilizan compatibilidad con Brotli mediante enlaces de Python u otras integraciones de lenguajes, e incluya los SDK integrados cuyas dependencias se mantienen por separado del sistema operativo del host. Amplíe la revisión a contenedores, imágenes base, artefactos de compilación y dispositivos de proveedores. Para cada elemento, anote el producto y su versión, la versión de la imagen o del firmware, el proceso que carga el decodificador y el responsable de actualizarlo. El objetivo es vincular una dependencia abstracta con el binario que realmente procesará los datos.

 La siguiente distinción es la exposición. Que haya un decodificador en un sistema no significa automáticamente que esté expuesto. Trace las vías por las que cada servicio recibe contenido comprimido: solicitudes HTTP públicas, cargas remotas autenticadas, mensajes de sistemas externos, tráfico de proxy, fuentes de paquetes o artefactos e interfaces administrativas. Registre también los servicios que descomprimen datos indirectamente, como pasarelas, intermediarios de mensajes, componentes de API o trabajadores de aplicaciones. Este mapa debe describir el flujo de datos a alto nivel; no requiere probar el fallo ni enviar entradas manipuladas. Basta con determinar si un atacante, un cliente no confiable o un sistema ascendente puede controlar el contenido que llega a la ruta de descodificación de Brotli.

 Un inventario práctico puede organizarse en torno a cuatro preguntas para cada entorno de ejecución o producto:

 - **¿Qué descodifica Brotli?** Identifique el entorno de ejecución, la biblioteca, el enlace, el SDK, el componente del dispositivo, la capa del contenedor o la implementación del servicio implicados.
- **¿Dónde se ejecuta?** Registre los hosts, contenedores, imágenes, firmwares, entornos de despliegue y el proceso o producto que lo carga.
- **¿Quién puede proporcionar la entrada?** Indique si los datos comprimidos proceden de la red pública, un socio, un usuario, un servicio interno o una fuente controlada.
- **¿Qué versión del proveedor lo corrige?** Compare el producto o componente observado con la versión corregida aplicable de Node.js, del proveedor del producto o del distribuidor que suministra el paquete.

 Esa última comparación debe hacerse al nivel del producto que está desplegado. Una actualización de Node.js puede corregir el entorno de ejecución en un servicio y, al mismo tiempo, dejar sin cambios un dispositivo independiente, un SDK o una biblioteca copiada. A la inversa, un proveedor puede publicar una actualización del producto que incluya el decodificador corregido sin modificar la forma en que la dependencia aparece en el informe de paquetes de la aplicación. La respuesta autorizada es el aviso de seguridad del proveedor y la versión corregida para el producto afectado, seguida de una confirmación de lo que está presente en el entorno en ejecución.

 Los contenedores requieren especial cuidado, porque actualizar un archivo de bloqueo o un manifiesto de paquetes no cambia una imagen ya creada. Compruebe la resolución de dependencias utilizada durante la compilación, pero inspeccione también la imagen resultante o el entorno de ejecución instalado en ella y, después, vuelva a desplegarla. Las imágenes que se reconstruyen a partir de una capa base sin cambios pueden reproducir el mismo componente vulnerable aunque el código fuente de la aplicación no haya cambiado. Cuando haya una imagen corregida, sustituya la carga de trabajo en ejecución en lugar de suponer que una compilación posterior modificará los contenedores existentes en el sitio. Mantenga suficientemente clara la relación entre la imagen antigua y el despliegue para identificar qué instancias aún requieren atención.

 El mismo principio se aplica a los procesos de larga duración y a los dispositivos. Una actualización de paquetes puede no afectar a un proceso que ya cargó la biblioteca antigua, y una actualización del dispositivo puede requerir un reinicio documentado o la activación del firmware antes de que se utilice el componente corregido. Considere los requisitos de reinicio parte del registro de remediación: anote la actualización aplicada, la instancia o el dispositivo reiniciado, el momento en que el nuevo proceso o firmware pasó a estar activo y las pruebas utilizadas para confirmarlo. Si un producto no ofrece un inventario de paquetes visible de forma independiente, base la evaluación en la correspondencia entre las versiones publicadas por el proveedor y la verificación operativa, en lugar de inferir que es seguro a partir de una versión no relacionada de la aplicación.

 Este inventario también ayuda a priorizar el trabajo sin convertir cada aparición en una emergencia. Dé prioridad a los decodificadores accesibles mediante servicios expuestos a Internet o contenido proporcionado de forma remota; después, a las puertas de enlace compartidas, los dispositivos de alto valor y las cargas de trabajo cuyos resultados consumen otros sistemas. En el caso de herramientas de desarrollo aisladas o servicios que solo decodifican datos controlados, la evaluación del riesgo puede ser distinta, pero deben seguir registrados hasta que el equipo responsable los compare con las indicaciones aplicables del proveedor. El mapa resultante debe ser una lista de remediación viva: cada entrada tiene un responsable del producto, una evaluación de exposición, una comparación con la versión corregida y un paso de verificación vinculado al componente que realmente se ejecuta.

 ## Corregir, contener y verificar sin hacer suposiciones

 Una respuesta defendible comienza con la clasificación, no con la suposición de que todos los sistemas que usan Node.js están expuestos por igual. Ordene los decodificadores según la forma en que reciben los datos comprimidos: primero los servicios y las puertas de enlace expuestos a Internet; después, las aplicaciones que aceptan cargas o mensajes de socios; y, a continuación, los servicios internos alimentados desde redes menos confiables. La pregunta clave no es si el inventario de un host contiene en algún lugar una versión vulnerable. Es si esa versión es el componente que realmente decodifica datos Brotli controlados por un atacante en un proceso o producto en ejecución.

 Para cada candidato, registre el equipo responsable, el producto y su versión, el origen del entorno de ejecución o de la biblioteca, la modalidad de despliegue y la ruta de entrada que invoca la decodificación. Incluya las instalaciones de Node.js, las aplicaciones que incorporan Node.js, las bibliotecas Brotli directas, los enlaces de lenguajes como las integraciones con Python, los SDK, los contenedores y los dispositivos. Un aviso del proveedor puede asignar estados distintos a diferentes versiones de un producto, así que compruebe la versión exacta del producto en lugar de inferir la exposición a partir de una afirmación genérica sobre la biblioteca subyacente. El aviso de Cisco demuestra por qué esto importa: el mismo problema subyacente puede aparecer en distintos productos con estados de remediación diferentes.

 La solución preferida es la actualización documentada por el proveedor del componente o del producto. Si el decodificador se suministra mediante Node.js, usa la versión identificada en las [indicaciones de seguridad de Node.js](https://nodejs.org/en/blog/vulnerability/october-2026-security-releases). Si está integrado en un dispositivo, SDK o aplicación, sigue las instrucciones de lanzamiento y despliegue de ese proveedor. No consideres que sustituir una dependencia de primer nivel demuestra que desaparecieron todas las copias integradas. Un archivo de bloqueo describe la resolución de una compilación; la imagen desplegada aún puede contener un paquete transitivo antiguo, código incorporado, un módulo nativo o una capa de ejecución independiente. El cierre depende del artefacto que se ejecuta.

 La contención temporal debe ser limitada, estar documentada y poder revertirse. Cuando sea viable desde el punto de vista operativo, reduce o suspende la ruta específica que acepta contenido Brotli no confiable, colócala detrás de un control aprobado de filtrado o de puerta de enlace, o retira de servicio el componente expuesto mientras se prepara la corrección. Estas medidas no sustituyen la aplicación del parche, y los equipos no deben inventarlas basándose en suposiciones sobre el comportamiento de compresión de un producto. Usa únicamente mitigaciones documentadas por el proveedor responsable o validadas mediante los procesos de cambio y seguridad de la organización. Registra cuándo comenzó el control, qué función afecta y quién debe retirarlo después de la corrección.

 Los detalles del despliegue forman parte de la corrección. Un proceso que carga su entorno de ejecución o biblioteca compartida al iniciarse puede seguir utilizando el decodificador antiguo hasta que se reinicie. Una imagen de contenedor puede reconstruirse correctamente mientras las réplicas existentes continúan atendiendo tráfico desde la imagen anterior. Después de una actualización gradual, confirma que los pods, workers, sidecars y nodos del dispositivo antiguos se hayan drenado o reiniciado, y que la conmutación por error o el autoescalado no vuelvan a introducir el artefacto reemplazado. Para los sistemas que están fuera del flujo principal de la aplicación, incluye los reinicios del servicio o del dispositivo en el registro de cambios, siguiendo el procedimiento documentado del producto.

 La verificación debe combinar evidencias del software con evidencias de exposición. Identifica el binario exacto en ejecución, el entorno de ejecución, el resumen de la imagen, el manifiesto de paquetes o la compilación del proveedor que atiende la ruta de decodificación; después, compáralo con la versión corregida indicada en el [registro de CVE aplicable](https://www.cve.org/CVERecord?id=CVE-2026-111497), la versión de Node.js o el aviso del producto. Confirma que el proceso relevante se reinició y que las instancias previstas ejecutan el nuevo artefacto; un repositorio de código fuente, una caché de paquetes o un resultado de CI por sí solos no constituyen una prueba. Vuelve a comprobar las copias duplicadas en imágenes inactivas, configuraciones de respaldo, entornos de prueba conectados a flujos de producción y dispositivos mantenidos por otro equipo.

 El registro debe indicar qué se observó y qué no: versiones afectadas encontradas, versiones corregidas desplegadas, rutas que reciben entradas comprimidas no confiables, controles temporales y resultados relevantes de monitorización. Las fuentes citadas establecen el contexto de la vulnerabilidad y su corrección, pero no demuestran una explotación generalizada confirmada. Esa distinción permite una respuesta proporcionada: priorizar los decodificadores accesibles y verificar rápidamente las correcciones, sin afirmar que todos los consumidores de Brotli fueron atacados ni que la corrección tuvo éxito simplemente porque cambió un archivo de dependencias. El objetivo final es un servicio en ejecución, inventariado, cuyo decodificador esté vinculado a una versión corregida documentada y cuya ruta de despliegue no restaure silenciosamente el componente vulnerable.
