A vulnerabilidade CVE-2026-8037 no Progress Kemp LoadMaster permite execução remota de código sem autenticação porque a função de sanitização de entrada, chamada escape_quotes(), alocava um buffer de heap sem inicializar e omitia o terminador nulo da string resultante. A CISA adicionou a falha ao catálogo Known Exploited Vulnerabilities em 7 de agosto de 2026, com prazo de correção em três dias, confirmando que a exploração já ocorre na internet.

Causa raiz na função escape_quotes

A análise técnica publicada pela watchTowr Labs comparou as versões 7.2.63.1 (vulnerável) e 7.2.63.2 (corrigida) do binário access e identificou que a única mudança relevante ocorreu exatamente na função escape_quotes(). Essa função recebe uma entrada controlada pelo usuário e tem por objetivo torná-la segura para uso dentro de um argumento de shell delimitado por aspas simples — algo como validuser -u '<entrada>'.

Quando a entrada contém uma aspa simples, a versão vulnerável alocava o buffer de destino com malloc(), que devolve memória sem zerar, e expandia cada aspa para a sequência de quatro bytes '\''. O problema é que o loop copiava os caracteres mas nunca escrevia um byte \0 ao final do conteúdo escapado. O resultado é uma string C sem terminação: ao ser passada adiante, o processamento continua lendo o lixo de heap deixado pela última alocação que ocupou aquela região.

De memória suja a injeção de comando

A ausência do terminador nulo, somada ao uso de malloc() em vez de calloc(), cria uma condição de heap não inicializado previsível. Um atacante controla os dois lados da equação: o conteúdo que entra no buffer escapado e o padrão de bytes que ocupa o heap pouco antes da chamada vulnerável. Ao enviar múltiplos parâmetros preenchidos com aspas simples e payloads de shell — como '; cat /etc/passwd # — para o endpoint /accessv2 na API do LoadMaster, o atacante consegue que o lixo de heap herdado feche a aspa original e entregue um comando arbitrário ao interpretador.

Isso eleva o que parecia ser um bug de memória obscuro a uma falha de execução remota de código pré-autenticação. A descrição do CNA Progress Software Corporation no NVD confirma: trata-se de uma vulnerabilidade de injeção de comando de sistema operacional na API que permite a um atacante não autenticado executar comandos arbitrários no appliance LoadMaster explorando entrada não sanitizada em múltiplos endpoints de comando. O CVSS 3.1 atribuído pelo NVD é 9.8 (Crítico).

O que o patch realmente muda

O boletim oficial da Progress recomenda atualizar para GA v7.2.63.2 ou LTSF v7.2.54.18. Internamente, a correção faz exatamente duas alterações na função escape_quotes():

Aspecto Versão vulnerável (≤7.2.63.1) Versão corrigida (7.2.63.2)
Alocação de buffer malloc() — memória não inicializada calloc() — memória zerada
Terminador nulo Ausente — string lê lixo de heap *end = 0 escrito após o conteúdo escapado
Tamanho do buffer 3*(strlen+1)+29 4*(strlen+1)+28 (espaço extra garantido)

O uso de calloc() zera todo o buffer antes de qualquer escrita, de modo que mesmo que um terminador fosse esquecido, os bytes residuais seriam zeros. A escrita explícita de *end = 0 é o fix lógico da causa raiz. Esses dois mecanismos se reforçam: defesa em profundidade aplicada a uma função de sanitização que fica na borda do appliance.

Produtos afetados e prazo KEV

O NVD lista quatro produtos afetados com a mesma correção: Progress Kemp LoadMaster (faixas GA e LTSF), Progress ECS Connection Manager, Progress Connection Manager for ObjectScale e Progress MOVEit WAF — todos nas versões anteriores a 7.2.63.2. A condição para a exploração é que a API esteja habilitada, o que é comum em implantações que automatizam configuração de balanceamento.

O catálogo KEV da CISA registra a entrada com Date Added em 2026-08-07 e Due Date em 2026-08-10, enquadrando a correção na diretiva BOD 26-04. Quando o produto não puder ser atualizado imediatamente, a orientação é avaliar a exposição à internet do appliance, restringir o acesso à API por ACL de rede e considerar a interrupção temporária do uso do produto, conforme as instruções da própria CISA.

Checklist de verificação e remediação

  1. Identifique todos os appliances LoadMaster, ECS Connection Manager, Connection Manager for ObjectScale e MOVEit WAF na faixa de versão vulnerável (≤7.2.63.1 ou ≤7.2.54.17).
  2. Confirme se a API de administração está habilitada — caso esteja, trate o ativo como exposto.
  3. Verifique se a interface de API é acessível diretamente da internet; se sim, aplique ACL ou movenha para rede de gestão imediatamente.
  4. Atualize para GA v7.2.63.2 ou LTSF v7.2.54.18 pelo Download Hub da Progress.
  5. Procure indicadores de comprometimento em logs do access e do endpoint /accessv2: múltiplas chamadas com campos apiuser e parâmetros g0gN preenchidos com aspas simples.
  6. Revise as contas criadas após a possível janela de exploração e invalide credenciais do appliance comprometido.
  7. Documente a triagem forense exigida pela BOD 26-04 para ambientes sujeitos à diretiva.

A combinação de malloc() sem inicialização e terminador nulo ausente mostra como dois erros pequenos em uma função de sanitização podem entregar controle total do appliance a um atacante anônimo. A lição estrutural vai além do LoadMaster: qualquer função que escape entrada para uso em shell deve alocar com calloc(), escrever o terminador explicitamente e nunca assumir que malloc() devolve memória limpa. A falha CVE-2026-8037 segue o mesmo padrão observado em outras falhas críticas do KEV discutidas na análise sobre Langflow, N-central e Tomcat: correção demorada que vira exploração ativa.

Fontes