Cisco AnyConnect Secure Mobility Client for Windows Uncontrolled Search Path Vulnerability
Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.
Apply updates per vendor instructions.
Resumen
Falha de escalonamento de privilégio local no cliente Cisco AnyConnect para Windows: um usuário autenticado, sem privilégios administrativos, consegue fazer o serviço AnyConnect (que roda como SYSTEM) copiar um arquivo controlado pelo atacante para qualquer local do disco, incluindo diretórios de sistema. Está no catálogo KEV da CISA porque, mais de dois anos após a correção, a Cisco identificou tentativas de exploração ativa em outubro de 2022 — sinal de que instalações antigas de AnyConnect ainda circulam em ambientes corporativos.
Detalle técnico
O AnyConnect Secure Mobility Agent roda como serviço Windows com privilégios SYSTEM e expõe uma porta TCP (62522) no loopback para receber comandos de clientes locais, entre eles o de invocar o vpndownloader.exe para aplicar atualizações ou mover arquivos de perfil. Esse mecanismo foi reforçado ao longo dos anos contra ataques anteriores de sequestro de DLL: os executáveis precisam ter assinatura Authenticode válida da Cisco, o nome original do arquivo precisa bater com 'vpndownloader.exe', e os arquivos de instalação são copiados primeiro para uma pasta temporária isolada sob %ProgramData%\Cisco\Cisco AnyConnect Secure Mobility Client\Temp\Installer antes de terem a assinatura verificada e serem executados.
O problema (CWE-427, Uncontrolled Search Path) está na forma como o vpndownloader.exe deriva o nome do arquivo de destino a partir do caminho de origem fornecido pelo usuário: ele busca a última ocorrência do caractere backslash ('\\') e trata tudo o que vem depois como nome de arquivo. A API do Windows, porém, também aceita a barra normal ('/') como separador de diretório — e o código não considera esse caso. Um atacante pode montar um caminho de origem que usa '/' para inserir componentes de diretório que o parser do vpndownloader não reconhece como tal, resultando em travessia de caminho (path traversal) e cópia do arquivo para fora da pasta temporária pretendida.
Como a verificação de assinatura Authenticode ocorre depois da cópia, e a cópia em si é feita com privilégios SYSTEM, o atacante consegue gravar ou sobrescrever qualquer arquivo em qualquer local do mesmo volume onde SYSTEM tenha permissão de escrita — sem que o arquivo precise estar assinado pela Cisco para essa etapa de cópia. Isso é suficiente, por si só, para elevação de privilégio (sobrescrever um arquivo protegido) e abre caminho para ataques de DLL hijacking/pre-loading: o pesquisador aponta a dbghelp.dll, comumente carregada por executáveis assinados da Cisco, como alvo prático para plantio de biblioteca maliciosa que será carregada por um processo SYSTEM.
Cómo se explota
O pré-requisito real é ter credenciais válidas de logon local no Windows (PR:L) — não é uma falha explorável remotamente nem por um usuário anônimo. Com uma sessão local de baixo privilégio, o atacante se conecta à porta TCP 62522 no loopback, onde o AnyConnect Agent (SYSTEM) escuta, e envia o comando que instrui o vpndownloader.exe a copiar um arquivo malicioso preparado pelo atacante. Ao construir o caminho de origem usando barra normal em vez de backslash, o atacante contorna a lógica de extração de nome de arquivo e faz a cópia cair fora da pasta temporária isolada — em um diretório de sistema arbitrário no mesmo volume.
Não há interação do usuário necessária (UI:N) e a complexidade de ataque é baixa (AC:L): o mecanismo de exploração é determinístico, não depende de timing ou condições de corrida, e já existem PoCs públicas e um módulo Metasploit documentados. O impacto reportado no CVSS é só de integridade (I:H, C:N, A:N) porque a primitiva bruta é 'escrever/sobrescrever arquivo arbitrário como SYSTEM' — mas essa primitiva, combinada com hijacking de DLL carregada por um binário assinado da Cisco executado com privilégios elevados, se traduz em execução de código arbitrário como SYSTEM, ou seja, escalonamento completo de privilégio local.
A Cisco confirmou em outubro de 2022 ter identificado tentativas adicionais de exploração no mundo real, o que motivou a inclusão no catálogo KEV da CISA (adicionado em 2022-10-24, com prazo de correção definido para 2022-11-14 para agências federais dos EUA). Isso indica que a falha continua sendo usada operacionalmente em ambientes com instalações desatualizadas do AnyConnect, tipicamente como etapa de pós-exploração para elevar privilégio depois de obter um ponto de apoio com conta de usuário comum.
Versiones
Cómo protegerse
A única mitigação real é atualizar o Cisco AnyConnect Secure Mobility Client para Windows para a versão 4.8.02042 ou posterior. A própria Cisco declara explicitamente no advisory que não existe workaround — não há flag de configuração, ACL ou controle compensatório oficial que neutralize a falha sem trocar o binário.
Como paliativo até a atualização, o controle possível é reduzir a superfície: restringir quem tem logon local nas máquinas com AnyConnect instalado (a exploração exige credenciais locais válidas), e monitorar/filtrar conexões locais à porta TCP 62522 via firewall de host, o que pode quebrar a funcionalidade legítima de auto-update do AnyConnect Agent — é um controle compensatório, não uma correção, e tem custo operacional (atualizações do próprio agente passam a depender de intervenção manual/administrativa).
Não funciona como mitigação apenas restringir permissões de escrita em %ProgramData%\Cisco\Cisco AnyConnect Secure Mobility Client\ isoladamente, porque a cópia ocorre com privilégios SYSTEM do próprio serviço da Cisco — o problema não é permissão de arquivo do usuário, é o parser de caminho do vpndownloader.exe aceitando separador de diretório que ele não deveria tratar como tal.
Cómo detectar
Monitorar conexões locais (loopback) à porta TCP 62522 originadas por processos que não sejam o próprio AnyConnect UI/Agent legítimo, e monitorar a criação de processos vpndownloader.exe com argumentos de linha de comando fora do padrão esperado. Em nível de sistema de arquivos, alertar para gravações ou sobrescritas feitas por vpndownloader.exe (rodando como SYSTEM) fora do diretório temporário esperado (%ProgramData%\Cisco\Cisco AnyConnect Secure Mobility Client\Temp\Installer), especialmente envolvendo DLLs comuns como dbghelp.dll em pastas de outros aplicativos assinados pela Cisco.
Não há assinatura de rede ou payload fixo publicamente documentado que sirva como IOC confiável e genérico — a exploração depende da string de caminho manipulada enviada ao serviço local, que varia por ataque. Na ausência de EDR com telemetria de criação de arquivo por processo, a detecção retroativa é difícil; a Cisco não publicou indicadores específicos da campanha de exploração identificada em 2022.