Pular para o conteúdo principal

CVE-2026-111497: execução remota de código e divulgação de memória do decodificador Brotli nativo

ID do boletim: 2026-155-AWS
Escopo: AWS
Tipo de conteúdo: importante (requer atenção)
Data de publicação: 28/10/2026 15:00 PDT
Data da última atualização: 30/10/2026 14:00 PDT

Descrição:

A AWS está ciente da vulnerabilidade CVE-2026-111497, uma falha de estouro de buffer na biblioteca nativa de descompressão Brotli, cuja correção foi introduzida inicialmente nas atualizações de segurança do Node.js de outubro de 2026. A decodificação de uma entrada comprimida em Brotli especialmente manipulada pode permitir que um terceiro execute código ou leia a memória do processo em uma aplicação afetada. O problema afeta a decodificação Brotli além do Node.js, e as correções de outros fornecedores ainda não estão totalmente disponíveis.

As informações sobre os serviços da AWS afetados são fornecidas abaixo. Atualizaremos este boletim assim que tivermos mais informações.

Status atual da mitigação:

AWS Lambda

O serviço gerenciado do AWS Lambda não foi afetado. Os runtimes do Lambda para .NET e Node.js foram afetados por esse problema.

Os runtimes do Lambda para Python, Ruby e OS-only provided.al2023 não incluem a biblioteca Brotli. Se você incluir a biblioteca Brotli em sua própria implantação de funções nessas situações, recomendamos a reimplantação com uma versão corrigida.

  • Status por runtime:
    - Node.js 22, 24, 26: imagens de base do contêiner: Atualizado. Recrie e reimplante agora. - Pacotes ZIP, Fase 1 e Fase 2 concluídos.
    - .NET 8, 9 (somente contêiner), 10 - Imagens base do contêiner: atualizado - pacotes ZIP, Fase 1 e Fase 2 concluídos.
  • Node.js:
    - Node.js 24: Devido a uma regressão conhecida na versão 24.22.1 do Node.js, inicialmente aplicamos atualizações específicas à versão estável atual em vez de migrar para a versão mais recente do Node.js. A regressão já foi corrigida na versão 24.22.2. Estamos no processo de lançamento desta versão, com a Fase 1 já concluída e a Fase 2 prevista para ser concluída em 31/10/2026.
  • Observe que os runtimes obsoletos, incluindo Node.js 18 e 20, não recebem atualizações de segurança. Recomendamos que os clientes atualizem para uma versão mais recente.
  • Aplicando a atualização:
    - Imagens de contêiner: quando a imagem base atualizada estiver disponível, recrie e reimplante suas funções de imagem de contêiner da imagem base mais recente.
    - Pacotes ZIP: as atualizações gerenciadas do runtime são lançadas em duas fases:
         ○ Fase 1: o Lambda aplica o runtime atualizado quando você cria ou atualiza uma função (por meio da API UpdateFunctionCode ou UpdateFunctionConfiguration)
         ○ Fase 2: O Lambda atualiza automaticamente as funções usando o modo de atualização automática de runtime que ainda não receberam a atualização

Essas fases são implantadas em ondas pelas regiões da AWS. Estamos acelerando nosso processo normal de lançamento, por isso não podemos prever quando a implantação em regiões individuais será concluída.

Quando a Fase 1 estiver concluída, você poderá obter a versão de runtime corrigida atualizando o código ou a configuração da função. Uma atualização sem alterações não é suficiente. Uma maneira fácil de acionar uma alteração é adicionar uma variável de ambiente. O script bash a seguir usa a AWS CLI para adicionar ou atualizar a variável de ambiente TRIGGER_RUNTIME_UPDATE, preservando as variáveis de ambiente existentes.

N.º 1. Definir o nome da sua função
FUNCTION_NAME="my-function"

N.º 2. Ler as variáveis de ambiente atuais em uma string JSON
CURRENT_VARS=$(aws lambda get-function-configuration \
--function-name "$FUNCTION_NAME" \
--query "Environment.Variables" \
--output json)

N.º 3. Mesclar na nova variável
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
')

N.º 4. Atualizar a configuração da função
aws lambda update-function-configuration \
--function-name "$FUNCTION_NAME" \
--environment "{\"Variables\": $MERGED}"
  • Como verificar se sua função está atualizada: A versão do patch de runtime é relatada na linha INIT_START em seus logs de função. Essa linha é emitida em cada inicialização a frio do ambiente de execução e geralmente aparece na parte superior de cada fluxo de logs. Para Node.js, procure nodejs:22.mainline.v157 ou superior (Node.js 22) ou nodejs:24.mainline.v114 ou superior (Node.js 24). A propriedade process.version não reflete a atualização do Node.js 24. Para .NET, procure dotnet:8.mainline.v165 ou superior (.NET 8) ou otnet:10.mainline.v113 ou superior (.NET 10).


AWS Amplify

As aplicações de computação (renderização do lado do servidor) do AWS Amplify Hosting executadas no Node.js 22 e no Node.js 24 receberão a atualização de segurança automaticamente quando o runtime gerenciado subjacente for atualizado. Não é necessária nenhuma ação por parte do cliente.

Se sua configuração de runtime especificar uma versão do Node.js anterior à 22, recomendamos migrar para uma versão com suporte do Node.js (22 ou 24) para receber essa e futuras atualizações de segurança.


AWS App Runner

Um runtime atualizado do Node.js gerenciado pelo App Runner foi implantado em todas as regiões da AWS em 26/10/2026.

Serviços que não foram implantados desde 26/10/2026: Reimplante seu serviço uma vez. A próxima implantação obtém o runtime atualizado sem nenhuma alteração na configuração.

Serviços fixados em uma versão explícita mais antiga do runtime: Atualize a versão fixada do runtime primeiro e, em seguida, faça a nova implantação. Uma nova implantação por si só não moverá um serviço fixo para o runtime atualizado.


Amazon CloudWatch Synthetics

Canários do Node.js: os runtimes de canários do Node.js usam o runtime gerenciado pelo Lambda e recebem as mesmas atualizações de Fase 1 e Fase 2 descritas acima. Nenhuma ação é necessária para os canários que recebem atualizações automáticas de runtime (meta: 30 de outubro de 2026).

Canários do Python Selenium: o runtime de canários do Python Selenium inclui a biblioteca Brotli. Uma atualização está em andamento. Atualizaremos este boletim com a versão de runtime corrigida e qualquer ação do cliente quando estiver disponível.


AWS CodeBuild

  • As imagens curadas atualizadas do CodeBuild estão em andamento. Previsão de conclusão: 30/10/2026. As imagens atualizadas incluem Node.js 22.23.4, 24.22.1 e 26.12.1; Ubuntu libbrotli1 1.0.9-2ubuntu0.1/1.1.0-2ubuntu0.1; e Amazon Linux 2023 brotli 1.1.0-1.amzn2023.0.2.
  • Imagens curadas usando a tag mais recente com "Sempre usar a imagem mais recente" selecionada e compilações de AMI sob demanda: Nenhuma ação é necessária. Sua próxima compilação usa a imagem atualizada.
  • Imagens curadas fixadas em uma versão ou resumo específico: Atualize a referência para a imagem atualizada.
  • Imagens personalizadas criadas de uma imagem base curada pelo CodeBuild: Recrie sua imagem da imagem base atualizada.
  • Especificações de compilação que selecionam o Node.js 18 ou 20: As imagens atualizadas não incluem mais o Node.js 18 ou 20. Atualize sua especificação de compilação para usar o Node.js 22, 24 ou 26.


AWS Elastic Beanstalk

  • A versão 6.11.12 da plataforma Node.js do Elastic Beanstalk, que inclui o Node.js 24.22.1 e o 22.23.4, foi lançada em 22 de outubro de 2026.
  • Para verificar, execute node --version, dpkg-query -W libbrotli1 (Ubuntu) ou rpm -q brotli (Amazon Linux 2023) em sua compilação.
  • Ambientes com atualizações de plataforma gerenciadas habilitadas: seu ambiente será atualizado para a versão corrigida da plataforma durante a próxima janela de manutenção semanal. Para atualizar mais cedo, aplique a atualização na guia Atualizações gerenciadas no console do Elastic Beanstalk.
  • Todos os outros ambientes: atualize seu ambiente para a versão 6.11.12 ou posterior da plataforma.
  • Ambientes no Node.js 18 ou 20: migre para uma ramificação compatível da plataforma do Node.js.

Para verificar, execute node --version nas instâncias do seu ambiente.


AWS Elemental MediaLive

  • A AWS está atualizando um componente do MediaLive gerenciado pela AWS que inclui a biblioteca afetada. Nenhuma ação do cliente é necessária


Ambientes Node.js gerenciados pelo cliente

Se você executa e gerencia suas próprias compilações do Node.js na AWS, por exemplo, em instâncias do Amazon EC2 ou em seus próprios contêineres no Amazon ECS ou no Amazon EKS, você é responsável por atualizar esses ambientes. Atualize para o Node.js 22.23.4, 24.22.1, 26.12.1 ou posterior. Como esse problema se estende a outras linguagens e aplicações que decodificam Brotli, verifique também se suas bibliotecas e aplicações incluem a decodificação Brotli como dependência.

Mitigação usando o AWS WAF

Se você não puder atualizar imediatamente, use o AWS WAF para implantar uma regra personalizada que bloqueia solicitações de entrada que usam a codificação de conteúdo Brotli (o cabeçalho Content-Encoding: br). Antes de implantar, observe:

  • O AWS WAF inspeciona somente solicitações de entrada. Esse controle não abrange dados do Brotli de outras fontes, como respostas de serviços upstream.
  • O bloqueio de solicitações codificadas pelo Brotli bloqueia todos os uploads codificados pelo Brotli para a aplicação, incluindo o tráfego normal.
  • A regra é um exemplo e pode não corresponder a todas as solicitações codificadas pelo Brotli. 
  • Etapas de implantação recomendadas:
    1. Implemente a regra com a ação Count.
    2. Analise as solicitações correspondentes nas métricas do Amazon CloudWatch e em amostras de solicitações.
    3. Quando você confirmar que a regra não afeta o tráfego normal, altere a ação para Block. Para fazer isso, substitua "Count": {} with "Block": {}.
    4. Defina a prioridade da regra de acordo com sua ordem de regras existente.

Exemplo de regra do 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 mudar para o bloqueio, substitua "Count": {} with "Block": {}.

As atualizações das regras gerenciadas pela AWS são anunciadas por meio do grupo de regras gerenciadas pelo AWS WAF, das notificações do SNS e do Guia do desenvolvedor do AWS WAF.

Ações recomendadas

  • Migre workloads em versões descontinuadas do Node.js (incluindo Node.js 18 e 20) para uma versão com suporte.
  • Para ambientes gerenciados pelo cliente, atualize para uma versão corrigida do Node.js como parte do processo de gerenciamento de patches.
  • Verifique se seu código, as dependências ou as camadas incluem sua própria biblioteca Brotli e atualize-os à medida que as correções forem disponibilizadas. Se nenhum patch ainda estiver disponível para uma biblioteca ou aplicação afetada, desative a decodificação Brotli até que um seja lançado.

Referências:


Envie um e-mail para aws-security@amazon.com  com qualquer dúvida ou preocupação relacionada à segurança.