Cisco AnyConnect Secure Mobility Client for Windows DLL Hijacking Vulnerability
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply updates per vendor instructions.
Resumo
Falha de DLL hijacking (CWE-427) no canal de comunicação entre processos (IPC) do Cisco AnyConnect Secure Mobility Client para Windows, anterior à versão 4.9.00086. Um atacante local já autenticado no Windows pode enviar uma mensagem IPC manipulada ao processo do AnyConnect para forçar o carregamento de uma DLL maliciosa pelo serviço, que roda com privilégios SYSTEM — resultando em escalada de privilégios completa. Está no catálogo KEV da CISA por exploração ativa confirmada, o que eleva a prioridade mesmo sendo um CVSS 7.8 que exige acesso local.
Detalhamento técnico
A causa raiz é CWE-427 (Uninitialized Search Path Element / carregamento inseguro de recursos em tempo de execução). O serviço do AnyConnect para Windows expõe um canal IPC para comunicação entre o processo de interface do usuário (que roda com privilégios do usuário logado) e o serviço principal, que roda como SYSTEM. O advisory da Cisco descreve que a aplicação não valida adequadamente os recursos (DLLs) que carrega em tempo de execução ao processar mensagens recebidas por esse canal.
O mecanismo clássico de DLL hijacking envolve a aplicação privilegiada resolver o caminho de uma DLL por nome, sem caminho absoluto verificado, permitindo que um processo com menor privilégio influencie qual biblioteca é efetivamente carregada — seja plantando um arquivo em um diretório que entra antes na ordem de busca do Windows, seja manipulando o dado que a mensagem IPC transporta para apontar o carregamento a um local controlado pelo atacante. A Cisco não publicou detalhes de qual campo específico da mensagem IPC ou qual DLL é o vetor exato; essa granularidade não está no advisory nem nas fontes disponíveis.
O resultado da exploração bem-sucedida é execução de código arbitrário no contexto do serviço SYSTEM, ou seja, escalada de privilégios total a partir de uma sessão de usuário padrão no mesmo host. Isso classifica a falha como local privilege escalation clássica, e não como RCE remoto — o vetor de rede não está no caminho de ataque.
Como é explorada
Pré-requisito central: o atacante precisa de credenciais válidas no sistema Windows onde o AnyConnect está instalado (PR:L no vetor CVSS) — não é exploração remota nem pré-autenticada. Com uma sessão local (mesmo de baixo privilégio), o atacante envia uma mensagem IPC especialmente construída ao processo do AnyConnect, que dispara o carregamento inseguro de uma DLL pelo componente que roda como SYSTEM. Não há necessidade de interação do usuário (UI:N) além da própria sessão do atacante, e a complexidade de ataque é considerada baixa (AC:L).
Existe prova de conceito pública desde agosto de 2020 e módulo Metasploit disponível, o que reduz a barreira técnica para replicar o ataque. A Cisco confirmou, em outubro de 2022, que passou a observar tentativas adicionais de exploração ativa
Versões
Como se proteger
A Cisco não oferece workaround: a única correção é atualizar o Cisco AnyConnect Secure Mobility Client for Windows para a versão 4.9.00086 ou posterior. O próprio advisory afirma explicitamente 'No workarounds available' — qualquer controle compensatório (restrição de permissões de diretório, EDR, políticas de AppLocker/WDAC contra carregamento de DLL não assinada) reduz risco mas não é mitigação reconhecida pelo fornecedor, e não substitui a atualização.
A falha afeta exclusivamente a versão Windows do cliente: Cisco confirmou que AnyConnect para macOS, Linux e sistemas móveis (iOS, Android, UWP) não são vulneráveis, então ambientes multiplataforma só precisam agir sobre os endpoints Windows.
Dado o status KEV e a exploração ativa confirmada pela própria Cisco, tratar esta CVE como prioridade operacional mesmo em ambientes onde 'acesso local' pareça reduzir o risco — o cenário de pós-exploração (atacante com credenciais roubadas buscando SYSTEM) é exatamente o que motiva o uso real dessa falha.
Como detectar
Não há assinatura de rede a procurar, já que o vetor é local via IPC entre processos no mesmo host — não há tráfego de rede associado à exploração. Em nível de host, EDR/logs de carregamento de módulo (ex.: Sysmon Event ID 7 - Image Loaded) no processo do serviço AnyConnect podem revelar carregamento de DLL fora dos diretórios de instalação esperados ou DLLs não assinadas pela Cisco carregadas pelo processo do serviço, mas isso depende de instrumentação prévia — não há indicador de comprometimento público e confiável divulgado pela Cisco ou pela CISA para esta CVE especificamente.