CVE-2024-13161
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
Resumo
CVE-2024-13161 é uma falha de path traversal absoluto no método GetHashForSingleFile da classe VulCore (DLL WSVulnerabilityCore.dll) do Ivanti Endpoint Manager (EPM), acessível sem autenticação. Na prática, não é apenas 'leitura de arquivo' — é uma vulnerabilidade de coerção de credenciais: o parâmetro controlado pelo atacante pode apontar para um caminho UNC remoto, forçando o servidor EPM a autenticar via NTLM contra um host controlado pelo atacante, expondo o hash da conta de máquina do EPM para relay. Está no catálogo KEV da CISA com exploração confirmada e prazo de correção vencido em 2025-03-31, o que eleva a prioridade muito além do que o CVSS por si só sugeriria.
Detalhamento técnico
A classe VulCore, exposta pela DLL C:\Program Files\LANDesk\ManagementSuite\WSVulnerabilityCore.dll, implementa APIs de gerenciamento de vulnerabilidades usadas pelo EPM para calcular hashes de arquivos em endpoints gerenciados. O método GetHashForSingleFile() recebe um argumento strFileName e o passa para HashCalculator.GetHashForSingleFile() sem validar se o caminho é local ou uma referência UNC (\\host\share\arquivo). O NVD classifica isso como CWE-36 (Absolute Path Traversal), mas a análise da Horizon3.ai mostra que o comportamento real é mais grave: a função aparentemente foi projetada para aceitar caminhos UNC como parte de sua funcionalidade legítima (cálculo de hash em compartilhamentos remotos), e o problema é que essa funcionalidade ficou acessível a um endpoint sem qualquer autenticação.
O atacante controla integralmente o valor de strFileName. Ao apontar esse parâmetro para um servidor SMB sob seu controle, ele força o processo do EPM — que roda com a conta de máquina do servidor — a se conectar e autenticar via NTLM contra esse host. Isso não devolve o hash NTLM em texto claro para o atacante, mas permite capturar o desafio/resposta NTLM e realizar relay para outro serviço (LDAP, SMB, etc.) enquanto a autenticação está em andamento.
CVE-2024-13161 faz parte de um grupo de quatro vulnerabilidades quase idênticas descobertas pela Horizon3.ai na mesma classe VulCore: CVE-2024-10811 (GetHashForFile), CVE-2024-13159 (GetHashForWildcardRecursive), CVE-2024-13160 (GetHashForWildcard) e a própria CVE-2024-13161 (GetHashForSingleFile). Todas compartilham o mesmo padrão — parâmetro de caminho sem validação de UNC, passado a Path.Combine()/Path.GetDirectoryName() e usado para forçar acesso a um recurso remoto — e todas foram corrigidas no mesmo rollup de janeiro de 2025.
Como é explorada
O vetor é rede: o atacante envia uma requisição HTTP não autenticada ao endpoint VulCore do servidor EPM, com o parâmetro strFileName apontando para um caminho UNC controlado por ele (por exemplo, um listener SMB próprio). Não há pré-condição de autenticação, configuração não padrão ou interação do usuário — é isso que justifica o AV:N/AC:L/PR:N/UI:N do vetor CVSS. A única exigência real é acesso de rede ao serviço EPM exposto (porta/endpoint do WSVulnerabilityCore).
O resultado imediato é a coerção da conta de máquina do servidor EPM a autenticar contra o host do atacante. A partir daí, o impacto depende do ambiente: com uma ferramenta de relay (ntlmrelayx e equivalentes), o atacante pode encadear essa autenticação coercitiva para criar uma conta de computador no Active Directory via relay para LDAP, conceder direitos de delegação a essa conta e, em seguida, obter um ticket Kerberos para se passar por um administrador de domínio no serviço CIFS do próprio servidor EPM — culminando em comprometimento administrativo do servidor. Como o EPM gerencia todos os endpoints sob sua administração, comprometer o servidor abre caminho para controle de toda a base de máquinas gerenciadas.
A Horizon3.ai publicou prova de conceito pública (referenciada em seu blog) e a CISA confirmou exploração ativa no mundo real, incluindo a CVE no catálogo KEV com prazo de mitigação em 31/03/2025. A complexidade de exploração é baixa para o passo inicial (forçar a autenticação); a complexidade para o passo de relay/escalonamento completo depende de haver um serviço vulnerável a relay (LDAP sem assinatura, por exemplo) na mesma rede, mas esse tipo de configuração é comum em ambientes AD que não aplicaram hardening de relay NTLM.
Versões
Como se proteger
A correção do fornecedor é aplicar o EPM 2024 January-2025 Security Update ou o EPM 2022 SU6 January-2025 Security Update, conforme a linha instalada. Não há versão intermediária que resolva parcialmente — o rollup de janeiro de 2025 corrige as quatro vulnerabilidades relacionadas (CVE-2024-10811, CVE-2024-13159, CVE-2024-13160, CVE-2024-13161) de uma só vez, então aplicar o patch cobre toda a família de falhas na classe VulCore.
Se a atualização imediata não for viável, o controle compensatório real é reduzir a superfície de ataque de relay NTLM: aplicar assinatura SMB e LDAP obrigatória nos controladores de domínio, restringir a exposição de rede do servidor EPM para que ele não alcance hosts arbitrários na internet ou em segmentos não confiáveis, e monitorar/bloquear autenticações NTLM salientes não esperadas a partir da conta de máquina do EPM. Isolar a interface de administração do EPM (impedir que ela seja acessível sem VPN/segmentação) não corrige a falha, mas reduz a chance de exploração remota não autenticada.
O que não funciona como mitigação: desabilitar apenas a interface web de administração do EPM sem tocar no serviço WSVulnerabilityCore, pois o endpoint vulnerável é uma API de serviço, não necessariamente a mesma superfície da console administrativa. Também não basta bloquear NTLM em um único destino — o atacante escolhe o destino do relay, então o controle precisa estar na política de assinatura/autenticação dos serviços de destino (AD/LDAP/SMB), não apenas no servidor EPM.
Como detectar
Monitorar requisições HTTP não autenticadas dirigidas ao serviço/DLL WSVulnerabilityCore (classe VulCore), especialmente chamadas a métodos GetHashForSingleFile, GetHashForFile, GetHashForWildcard e GetHashForWildcardRecursive contendo parâmetros de caminho no formato UNC (\\host\...) apontando para IPs ou hostnames externos ao ambiente. No lado de rede, procurar por conexões SMB (porta 445) ou tentativas de autenticação NTLM originadas do host do servidor EPM em direção a destinos fora da topologia normal de compartilhamentos da organização — esse tráfego de saída inesperado é o sinal mais direto de tentativa de coerção de credenciais.
Não há assinatura de payload confiável, já que a exploração consiste em um parâmetro de string bem formado, não em um exploit binário; times de detecção devem depender de correlação entre logs de aplicação do EPM e logs de autenticação/NetFlow para identificar o padrão de 'servidor autenticando para fora' que caracteriza o ataque.