CVE-2026-111497: Ejecución remota de código y divulgación de memoria del decodificador nativo de Brotli
ID del boletín: 2026-155-AWS
Alcance: AWS
Tipo de contenido: Importante (requiere atención)
Fecha de publicación: 28/10/2026 15:00 h PDT
Fecha de última actualización: 30/10/2026 14:00 h PDT
Descripción:
AWS está al corriente de la vulnerabilidad CVE-2026-111497, un desbordamiento de búfer en la biblioteca de descompresión nativa de Brotli, que se solucionó por primera vez en las versiones de seguridad de Node.js de octubre de 2026. La decodificación de entradas comprimidas con Brotli especialmente diseñadas podría permitir a un tercero ejecutar código o leer la memoria del proceso en una aplicación afectada. El problema afecta a la decodificación de Brotli más allá de Node.js, y las correcciones de otros proveedores aún no están disponibles en su totalidad.
La información sobre los servicios de AWS afectados se proporciona a continuación. Actualizaremos este boletín a medida que haya más información disponible.
Estado actual de mitigación:
AWS Lambda
El servicio administrado de AWS Lambda no se ve afectado. Este problema afecta a los tiempos de ejecución de Lambda para .NET y Node.js.
Los tiempos de ejecución de Lambda para Python, Ruby y OS-only provided.al2023 no incluyen la biblioteca Brotli. Si incluye la biblioteca Brotli en la implementación de su propia función en estas situaciones, le recomendamos volver a implementarla con una versión parcheada.
- Estado por tiempo de ejecución:
- Node.js 22, 24, 26 - Imágenes base del contenedor: Actualizado. Reconstruya y vuelva a implementar ahora. - Paquetes ZIP, fases 1 y 2 completadas.
- .NET 8, 9 (solo contenedor), 10 - Imágenes base del contenedor: Actualizado: paquetes ZIP, fases 1 y 2 completadas. - Node.js:
- Node.js 24: Debido a una regresión conocida en la versión 24.22.1 de Node.js, inicialmente aplicamos actualizaciones específicas a la versión estable actual en lugar de pasar a la última versión de Node.js. La regresión ya se ha corregido en la versión 24.22.2. Estamos en proceso de publicación de esta versión. La fase 1 ya se ha completado y se espera que la fase 2 finalice el 31 de octubre de 2026. - Tenga en cuenta que los tiempos de ejecución obsoletos, incluidos Node.js 18 y 20, no reciben actualizaciones de seguridad. Recomendamos a los clientes que actualicen a una versión más reciente.
- Aplicar la actualización:
- Imágenes de contenedor: Cuando la imagen base actualizada esté disponible, reconstruya y vuelva a implementar las funciones de la imagen de contenedor a partir de la imagen base más reciente.
- Paquetes ZIP: Las actualizaciones administradas en el tiempo de ejecución se implementan en dos fases:
○ Fase 1: Lambda aplica el tiempo de ejecución actualizado al crear o actualizar una función (mediante la API UpdateFunctionCode o UpdateFunctionConfiguration)
○ Fase 2: Lambda actualiza automáticamente las funciones mediante el modo de actualización automática en el tiempo de ejecución que aún no han recibido la actualización
Estas fases se implementan en oleadas en todas las regiones de AWS. Estamos acelerando nuestro proceso de lanzamiento habitual, por lo que no podemos predecir cuándo se completará la implementación en cada región.
Una vez finalizada la fase 1, puede elegir la versión del tiempo de ejecución parcheada actualizando el código de función o la configuración. Una actualización sin cambios no es suficiente. Una forma sencilla de activar un cambio es agregar una variable de entorno. El siguiente script de bash usa la CLI de AWS para agregar o actualizar la variable de entorno TRIGGER_RUNTIME_UPDATE y, al mismo tiempo, conservar las variables de entorno existentes.
| # 1. Establezca el nombre de su función FUNCTION_NAME="my-function" # 2. Lea las variables de entorno actuales en una cadena JSON CURRENT_VARS=$(aws lambda get-function-configuration \ --function-name "$FUNCTION_NAME" \ --query "Environment.Variables" \ --output json) # 3. Combine la nueva variable MERGED=$(echo "$CURRENT_VARS" \ | jq ' if . == null then {} else . end | if .TRIGGER_RUNTIME_UPDATE then .TRIGGER_RUNTIME_UPDATE = ((.TRIGGER_RUNTIME_UPDATE | tonumber) + 1 | tostring) else .TRIGGER_RUNTIME_UPDATE = "1" end ') # 4. Actualice la configuración de la función aws lambda update-function-configuration \ --function-name "$FUNCTION_NAME" \ --environment "{\"Variables\": $MERGED}" |
- Cómo verificar que su función esté actualizada: La versión del parche en el tiempo de ejecución aparece en la línea INIT_START de los registros de su función. Esta línea se emite cada vez que se inicia en frío el entorno de ejecución y, por lo general, aparece en la parte superior de cada flujo de registro. Para Node.js, busque nodejs:22.mainline.v157 o superior (Node.js 22) o nodejs:24.mainline.v114 o superior (Node.js 24). La propiedad process.version no refleja la actualización de Node.js 24. Para .NET, busque dotnet:8.mainline.v165 o superior (.NET 8) u otnet:10.mainline.v113 o superior (.NET 10).
AWS Amplify
Las aplicaciones de proceso (renderización del servidor) de AWS Amplify Hosting que se ejecuten en Node.js 22 y Node.js 24 recibirán la actualización de seguridad automáticamente una vez que se actualice el tiempo de ejecución administrado subyacente. No se requiere ninguna acción por parte del cliente.
Si su configuración de tiempo de ejecución especifica una versión de Node.js anterior a la 22, le recomendamos que migre a una versión de Node.js compatible (22 o 24) para recibir esta y futuras actualizaciones de seguridad.
AWS App Runner
El 26 de octubre de 2026 se implementó un tiempo de ejecución de Node.js administrado y actualizado de App Runner en todas las regiones de AWS.
Servicios que no se han implementado desde el 26 de octubre de 2026: Vuelva a implementar el servicio una vez. La siguiente implementación retoma el tiempo de ejecución actualizado sin ningún cambio de configuración.
Servicios anclados a una versión de tiempo de ejecución anterior explícita: Actualice primero el ancla de la versión en el tiempo de ejecución y, a continuación, vuelva a implementarlo. Una nueva implementación por sí sola no moverá un servicio anclado al tiempo de ejecución actualizado.
Amazon CloudWatch Synthetics
Canarios de Node.js: Los tiempos de ejecución canarios de Node.js utilizan el tiempo de ejecución administrado por Lambda y reciben las mismas actualizaciones de fase 1 y fase 2 descritas anteriormente. Los canarios que reciben actualizaciones de tiempo de ejecución automáticas no requieren ninguna acción (objetivo: 30 de octubre de 2026).
Canarios de Python Selenium: El tiempo de ejecución de canario de Python Selenium incluye la biblioteca Brotli. Hay una actualización en curso. Actualizaremos este boletín con la versión del tiempo de ejecución parcheada y cualquier acción del cliente cuando esté disponible.
AWS CodeBuild
- Se están actualizando las imágenes seleccionadas de CodeBuild. Objetivo de finalización: 30 de octubre de 2026. Las imágenes actualizadas incluyen Node.js 22.23.4, 24.22.1 y 26.12.1; Ubuntu libbrotli1 1.0.9-2ubuntu0.1 / 1.1.0-2ubuntu0.1; y Amazon Linux 2023 brotli 1.1.0-1.amzn2023.0.2.
- Imágenes seleccionadas con la etiqueta más reciente con la opción "Usar siempre la imagen más reciente" seleccionada y compilaciones de AMI bajo demanda: No se requiere ninguna acción. La próxima compilación usa la imagen actualizada.
- Imágenes seleccionadas ancladas a una versión o resumen específico: Actualice la referencia a la imagen actualizada.
- Imágenes personalizadas creadas a partir de una imagen base seleccionada por CodeBuild: Reconstruya su imagen a partir de la imagen base actualizada.
- Especificaciones de compilación que seleccionen Node.js 18 o 20: Las imágenes actualizadas ya no incluyen Node.js 18 o 20. Actualice sus especificaciones de compilación para usar Node.js 22, 24 o 26.
AWS Elastic Beanstalk
- La versión 6.11.12 de la plataforma Node.js de Elastic Beanstalk, que incluye Node.js 24.22.1 y 22.23.4, se publicó el 22 de octubre de 2026.
- Para verificarlo, ejecute node --version, dpkg-query -W libbrotli1 (Ubuntu) o rpm -q brotli (Amazon Linux 2023) en su compilación.
- Entornos con actualizaciones de la plataforma administradas habilitadas: Su entorno se actualizará a la versión de la plataforma corregida durante el próximo período de mantenimiento semanal. Para actualizar antes, aplique la actualización desde la pestaña Actualizaciones administradas de la consola de Elastic Beanstalk.
- Todos los demás entornos: Actualice su entorno a la versión 6.11.12 o posterior de la plataforma.
- Entornos en Node.js 18 o 20: Migre a una ramificación de la plataforma Node.js compatible.
Para verificarlo, ejecute node --version en las instancias de su entorno.
AWS Elemental MediaLive
- AWS está actualizando un componente de MediaLive administrado por AWS que incluye la biblioteca afectada. No se requiere ninguna acción por parte del cliente
Entornos de Node.js administrados por los clientes
Si ejecuta y administra sus propias compilaciones de Node.js en AWS, por ejemplo, en instancias de Amazon EC2 o en sus propios contenedores en Amazon ECS o Amazon EKS, es responsable de actualizar esos entornos. Actualice a Node.js 22.23.4, 24.22.1, 26.12.1 o una versión posterior. Dado que este problema se extiende a otros lenguajes y aplicaciones que decodifican Brotli, compruebe también si sus bibliotecas y aplicaciones incluyen la decodificación de Brotli como dependencia.
Mitigación con AWS WAF
Si no puede realizar la actualización inmediatamente, puede usar AWS WAF para implementar una regla personalizada que bloquee las solicitudes entrantes que utilizan la codificación de contenido de Brotli (el encabezado Content-Encoding: br). Antes de la implementación, tenga en cuenta lo siguiente:
- AWS WAF inspecciona únicamente las solicitudes entrantes. Este control no cubre los datos de Brotli procedentes de otros orígenes, como las respuestas de los servicios originales.
- El bloqueo de las solicitudes codificadas por Brotli bloquea todas las cargas codificadas por Brotli a la aplicación, incluido el tráfico normal.
- La regla es un ejemplo y es posible que no coincida con todas las solicitudes codificadas con Brotli.
- Pasos de implementación recomendados:
1. Implemente la regla con la acción Contar.
2. Revise las solicitudes coincidentes en las métricas de Amazon CloudWatch y en las solicitudes de muestra.
3. Cuando confirme que la regla no afecta al tráfico normal, cambie la acción a Bloquear. Para ello, sustituya "Count": {} with "Block": {}.
4. Establezca la prioridad de la regla para que se ajuste a su orden de reglas actual.
Ejemplo de regla de AWS WAF:
|
{ "Name": "Node2Shell_BROTLI", "Priority": 2, "Statement": { "RegexMatchStatement": { "RegexString": "^\\s*br\\s*$", "FieldToMatch": { "SingleHeader": { "Name": "content-encoding" } }, "TextTransformations": [ { "Priority": 0, "Type": "LOWERCASE" } ] } }, "Action": { "Count": {} }, "RuleLabels": [ { "Name": "Node2Shell_Brotli" } ], "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "Node2Shell_BROTLI" } } |
Para cambiar al bloqueo, sustituya "Count": {} with "Block": {}.
Las actualizaciones de las reglas administradas de AWS se anuncian a través del grupo de reglas administradas por AWS WAF, las notificaciones de SNS y la Guía para desarrolladores de AWS WAF.
Acciones recomendadas
- Migre las cargas de trabajo de las versiones de Node.js al final de su ciclo de vida (incluidas las versiones Node.js 18 y 20) a una versión compatible.
- En el caso de los entornos administrados por el cliente, actualice a una versión corregida de Node.js como parte del proceso de administración de parches.
- Compruebe si el código, las dependencias o las capas incluyen su propia biblioteca Brotli y actualícelos a medida que haya correcciones disponibles. Si aún no hay ningún parche disponible para la biblioteca o aplicación afectada, desactive la decodificación de Brotli hasta que se publique uno.
Referencias:
Envíe un correo electrónico a aws-security@amazon.com si tiene alguna pregunta o inquietud sobre seguridad.