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
- 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).
- Confirme se a API de administração está habilitada — caso esteja, trate o ativo como exposto.
- Verifique se a interface de API é acessível diretamente da internet; se sim, aplique ACL ou movenha para rede de gestão imediatamente.
- Atualize para GA v7.2.63.2 ou LTSF v7.2.54.18 pelo Download Hub da Progress.
- Procure indicadores de comprometimento em logs do
accesse do endpoint/accessv2: múltiplas chamadas com camposapiusere parâmetrosg0–gNpreenchidos com aspas simples. - Revise as contas criadas após a possível janela de exploração e invalide credenciais do appliance comprometido.
- 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.