Una aplicación puede recibir tráfico HTTPS normal y, aun así, procesar entradas peligrosas si descomprime datos Brotli proporcionados por usuarios. El 25 de octubre de 2026, Microsoft publicó actualizaciones extraordinarias de .NET para corregir un desbordamiento de búfer en el decodificador de Brotli; la vulnerabilidad está identificada como CVE-2026-111497. Node.js incluyó una corrección para la misma vulnerabilidad en una versión de seguridad independiente del 21 de octubre. Para los desarrolladores, el primer paso es rastrear el recorrido desde los datos externos hasta el decodificador y, después, actualizar el entorno de ejecución y volver a compilar o reiniciar la aplicación.

Según la descripción de Microsoft, la vulnerabilidad de .NET podría permitir que un atacante no autenticado leyera o dañara la memoria del proceso, lo que podría provocar la divulgación de datos, una denegación de servicio o una escalada de privilegios. Se han publicado correcciones para .NET 8, 9 y 10, así como para .NET 11 Release Candidate 3. Para .NET 8 se indican el runtime 8.0.33 y los SDK 8.0.133 o 8.0.427. .NET Framework no está afectado.
Dónde se produce la exposición
El riesgo aparece cuando una aplicación entrega un flujo Brotli no confiable a un decodificador vulnerable. En .NET, esto puede ocurrir al usar la descompresión de solicitudes de ASP.NET Core, la descompresión automática de respuestas mediante HttpClient o al llamar directamente a API de System.IO.Compression, como BrotliStream y BrotliDecoder. La recomendación de .NET enumera estas vías e indica que la descompresión de solicitudes entrantes y la descompresión automática de respuestas están desactivadas de forma predeterminada.
El inventario de paquetes es solo el comienzo de la comprobación. Busca configuraciones de middleware y clientes HTTP, llamadas directas al decodificador y componentes de terceros que acepten datos comprimidos. Averigua si esos datos llegan de clientes, webhooks, proxies o API externas, y qué límites de tamaño y tiempo de procesamiento se aplican antes de la descompresión. Esto permitirá determinar dónde recibe el código vulnerable datos controlados desde el exterior.
Actualización de .NET
Instala la actualización correspondiente a la rama que utilices: .NET 8, 8.0.33; .NET 9, 9.0.22; .NET 10, 10.0.14; y .NET 11, Release Candidate 3. Para las aplicaciones dependientes del framework, instala el runtime actualizado y reinicia la aplicación. Las aplicaciones autónomas deben volver a compilarse y publicarse: actualizar el runtime del host no sustituye la copia incluida en la aplicación. Vuelve a compilar los contenedores y despliégalos con imágenes de .NET actualizadas.
Para NativeAOT, utiliza también los SDK y paquetes de runtime actualizados al volver a publicar. Si todavía no puedes desplegar la corrección, desactiva temporalmente Brotli en las vías de entrada identificadas que acepten datos no confiables. Comprueba las solicitudes habituales y las integraciones: desactivar la compresión puede cambiar el procesamiento de los clientes que envían cuerpos comprimidos.
Comprueba Node.js y las dependencias del sistema
El proyecto Node.js informó de la vulnerabilidad el 21 de octubre: el decodificador de Brotli integrado en Node.js 22.x, 24.x y 26.x está afectado. La versión de seguridad de Node.js indica las versiones corregidas: 22.23.4, 24.22.1 y 26.12.1, respectivamente. Actualiza la rama compatible que utilices y reinicia el servicio. Según la descripción del proyecto, el problema se produce cuando una aplicación descomprime datos proporcionados por un atacante mediante node:zlib; la corrupción de memoria puede provocar un cierre inesperado, la divulgación de memoria o la ejecución remota de código.
Comprueba también las dependencias suministradas por separado del Node.js o .NET del sistema. Verifica las versiones de Brotli en los contenedores y artefactos de compilación, y repite la comprobación después del despliegue. En CI, fija la imagen base actualizada e incorpora la supervisión de versiones de bibliotecas vulnerables al proceso habitual de compilación.
Pasos de actuación
- Haz una lista de las aplicaciones, SDK, runtimes, contenedores y compilaciones NativeAOT que utilizan Brotli.
- Localiza los puntos donde los datos externos pasan por una decodificación automática o directa.
- Actualiza .NET, Node.js y las bibliotecas suministradas por separado a versiones corregidas; vuelve a compilar las aplicaciones autónomas y los contenedores.
- Reinicia los procesos y comprueba las versiones en el entorno en ejecución, no solo en los archivos del proyecto.
- Hasta que la corrección esté desplegada, limita el procesamiento de entradas Brotli no confiables en las vías vulnerables identificadas.
La prioridad depende de dos factores: la presencia de un componente vulnerable y la posibilidad de enviarle un flujo comprimido especialmente diseñado. La actualización corrige el defecto, mientras que el mapa de vías de entrada ayuda a comprobar que la corrección llegó a los procesos, las compilaciones autónomas y los contenedores.