← volver
CVE-2018-11138criticalbajo ataqueransomwareCWE-78

CVE-2018-11138

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.

ssvc Actcvss 9.8epss 92%
de la publicación al arma27 días
Publicada en NVD31 may
1ª PoC+27d
metasploit31 may
CISA KEV+1394d
probabilidad de explotación
92%top 1% de las CVE
explotación observada
CISA + VulnCheck
2 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2022-04-15

Apply updates per vendor instructions.

Resumen

Falha de injeção de comandos OS (CWE-78) no script '/common/download_agent_installer.php' do Quest KACE System Management Appliance (K1000), acessível sem autenticação. Um parâmetro passado ao script chega sem sanitização a uma chamada de shell no servidor, permitindo execução arbitrária de comandos como o usuário do servidor web. Está no catálogo KEV da CISA com exploração confirmada em ambiente real, apesar de a CVE ter quatro anos quando foi adicionada — sinal de que appliances desatualizados continuam expostos.

Detalle técnico

O script download_agent_installer.php monta o instalador do agente KACE dinamicamente a partir de parâmetros GET, entre eles orgid (ID da organização). O valor desse parâmetro é concatenado em um comando de sistema executado no lado servidor sem escape de metacaracteres de shell — típico CWE-78 (OS Command Injection). Um atacante que insira caracteres como ';' no valor de orgid consegue encadear um segundo comando arbitrário, executado com os privilégios do processo web (usuário 'www' no FreeBSD, no caso testado).

O endpoint é alcançável por qualquer cliente não autenticado — não há verificação de sessão antes de processar a requisição. Isso, combinado com a natureza do parâmetro vulnerável (usado internamente para localizar o pacote do agente antes de ser passado a um comando de shell), é o que torna a falha crítica: não exige nenhuma autenticação prévia, apenas conhecimento de três valores que o próprio appliance expõe.

A cadeia de exploração documentada pelo módulo Metasploit usa três parâmetros: orgid (onde a injeção ocorre; o valor padrão de organização é '1'), version (uma versão de agente Windows válida — descobrível via share Samba '\\kace.local\client\agent_provisioning\windows_platform' se compartilhamento de arquivos estiver habilitado, ou listada no site do fornecedor) e um número de série do appliance, obtido através de outro endpoint não autenticado, '/common/about.php', que retorna o serial em texto claro na resposta.

Cómo se explota

O vetor é HTTP, remoto, sem autenticação (AV:N/PR:N/UI:N no vetor CVSS) — corresponde ao que os pesquisadores da Core Security e o módulo Metasploit público demonstraram. O único pré-requisito prático é acesso de rede ao appliance KACE e conhecimento de: (1) o ID de organização válido (o valor padrão '1' funciona na maioria das instalações não customizadas), (2) uma string de versão de agente Windows aceita pelo servidor, e (3) o número de série do appliance — item que o próprio atacante consegue coletar antes do ataque via '/common/about.php', também sem autenticação. Não há configuração não padrão necessária além de as duas rotas HTTP estarem acessíveis, o que é o comportamento padrão do produto.

Na prática, o ataque consiste em enviar uma requisição GET para download_agent_installer.php com o parâmetro de organização manipulado para injetar um comando de shell adicional, encadeado ao processamento legítimo do orgid. O servidor executa o comando injetado como usuário do serviço web, resultando em execução remota de código (RCE) sem shell reverso previamente estabelecido — o próprio módulo Metasploit trata isso como execução de payload em linha de comando.

A CISA confirma exploração ativa (entrada no catálogo KEV desde março de 2022, com prazo de correção definido para abril de 2022), e a disponibilidade de PoC pública e módulo Metasploit desde 2018 tornou o exploit trivial de operacionalizar por qualquer agente de ameaça com varredura de appliances KACE expostos à internet.

Versiones

Afectadas
Quest KACE System Management Appliance (K1000) build 8.0.318 confirmada como vulnerável pelo pesquisador original; o verificador do módulo Metasploit trata como vulneráveis todas as versões anteriores a 7.0, e as faixas 7.0.x < 7.0.121307, 7.1.x < 7.1.150, 7.2.x < 7.2.103, 8.0.x < 8.0.320 e 8.1.x < 8.1.108.
Corregidas en
7.0.121307, 7.1.150, 7.2.103, 8.0.320 e 8.1.108, conforme notificação de produto do fornecedor (noti-00000134).

Cómo protegerse

O fornecedor (Quest) publicou correção via notificação de produto (noti-00000134). Segundo as faixas de versão verificadas pelo próprio módulo Metasploit contra os cabeçalhos X-KACE-Version do appliance, as versões corrigidas são: 7.0.121307 (para o ramo 7.0.x), 7.1.150 (ramo 7.1.x), 7.2.103 (ramo 7.2.x), 8.0.320 (ramo 8.0.x — a versão testada e vulnerável foi 8.0.318) e 8.1.108 (ramo 8.1.x). Qualquer versão anterior a 7.0 também é tratada como vulnerável pelo verificador.

Se a atualização imediata não for viável, o controle compensatório real é restringir o acesso de rede ao appliance KACE — colocá-lo fora do alcance direto da internet e limitar acesso aos endpoints '/common/download_agent_installer.php' e '/common/about.php' a redes de gerenciamento confiáveis, já que ambos operam sem autenticação por design. Desabilitar o compartilhamento Samba de provisionamento de agentes não neutraliza a falha (o atacante pode obter a versão do agente por outras fontes, como o site do fornecedor), então não deve ser tratado como mitigação suficiente isoladamente.

Não há mitigação eficaz apenas por regra de WAF genérica contra o parâmetro orgid sem quebrar funcionalidade legítima do provisionamento de agentes — o caminho seguro é a atualização de versão combinada com segmentação de rede até a atualização ser aplicada.

Cómo detectar

Requisições HTTP para '/common/download_agent_installer.php' contendo metacaracteres de shell (';', '`', '|', '&') no valor do parâmetro orgid são o indicador mais direto de tentativa de exploração — não deveriam aparecer em uso legítimo, já que orgid é normalmente um número inteiro simples. Requisições anteriores a '/common/about.php' partindo do mesmo IP, sem sessão autenticada, indicam reconhecimento para obter o número de série do appliance, passo típico da cadeia de exploração documentada.

O próprio appliance expõe os cabeçalhos 'X-KACE-Appliance' e 'X-KACE-Version' nas respostas HTTP, úteis para identificar rapidamente se um host é um KACE e qual build está rodando — verificação que o módulo Metasploit e templates Nuclei usam antes de tentar a injeção. Não há um IOC de payload único, pois o comando injetado é definido pelo atacante; monitorar logs de acesso do webserver para os dois endpoints citados, combinados com execução de processos inesperados pelo usuário do serviço web (www), é o sinal mais confiável disponível.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by anonymous users and can be abused to execute arbitrary commands on the system.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Productos afectados
n/a · n/a
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.