CVE-2016-3235
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 side-loading no OLE do Microsoft Office, afetando especificamente componentes COM do Visio. Ao instanciar certos objetos OLE do Visio, o Windows tenta carregar a DLL msoutls.dll a partir do diretório de trabalho atual antes de resolver o caminho correto, permitindo que um atacante substitua essa biblioteca por uma maliciosa. Está no catálogo KEV da CISA com exploração confirmada e possui módulo Metasploit público, então mesmo sendo de 2016 continua relevante para triagem de ambientes legados com Office/Visio não atualizado.
Detalhamento técnico
O problema está na forma como o Windows resolve o caminho de bibliotecas ao instanciar objetos OLE via CLSID. Antes de confirmar se um CLSID corresponde de fato a um objeto OLE válido, o sistema precisa carregar a DLL associada na memória — e essa resolução de caminho, em vez de usar apenas locais confiáveis do sistema, inclui o diretório de trabalho atual (current working directory) na busca. Isso caracteriza uma falha clássica de uncontrolled search path / DLL side-loading (CWE-264 segundo a classificação usada pela CISA no KEV; o padrão de exploração é tipicamente associado a CWE-427, 'Uncontrolled Search Path Element').
A pesquisa da Securify identificou pelo menos cinco componentes COM do Visio que disparam essa busca insegura ao serem carregados como objeto OLE embutido: Visio CAD Drawing (CLSID {000D0E00-0000-0000-C000-000000000046}), VisioModelingEngine Class ({19FD6844-676F-4F5E-A319-1C237A6BE243}), Visio DWG Display ({550D0110-8DCD-11D1-8524-00A02495E316}), Visio DWG Display Creator ({6C92B806-B900-4392-89F7-2ED4B4C23211}) e Microsoft Office Visio 14.0 Drawing Control ({E4615FA3-23B0-4976-BD3E-D611DDBE330E}). Em todos os casos, o Windows tenta carregar msoutls.dll do diretório onde o documento OLE que referencia esses CLSIDs foi aberto.
O atacante controla o conteúdo do arquivo DLL colocado no mesmo diretório do documento malicioso — ele só precisa nomear o arquivo msoutls.dll e implementar as funções exportadas que o Visio espera encontrar (a análise da Securify documenta os métodos importados dessa DLL). O código nessa DLL é executado com os privilégios do usuário que abre o documento, dentro do contexto do processo Office.
Como é explorada
O vetor prático é entregar ao usuário um par de arquivos: um documento do Office contendo um objeto OLE embutido que referencia um dos CLSIDs vulneráveis do Visio, e a DLL maliciosa nomeada msoutls.dll, ambos na mesma pasta. Isso normalmente chega via arquivo compartilhado em rede, pasta compartilhada em serviço de armazenamento, mídia removível ou anexo compactado que preserva a estrutura de diretório — o usuário precisa apenas abrir o documento a partir dessa pasta, sem executar nada manualmente na DLL.
O vetor CVSS oficial (AV:L/AC:L/PR:N/UI:R) reflete que a exploração depende de interação do usuário e é tratada como local, já que a DLL precisa estar acessível no mesmo diretório de trabalho — não é um ataque puramente remoto sem esse pré-requisito de entrega de arquivo. Não é necessário privilégio elevado nem configuração não padrão do Office; o Visio (ou Visio Viewer) instalado já é suficiente, já que a falha está no tratamento de OLE do próprio componente, não em uma feature opcional.
A presença no catálogo KEV da CISA confirma exploração em campo, e a existência de módulo Metasploit e PoC pública reduz a barreira técnica — a cadeia de ataque (documento + DLL homônima + engenharia social para convencer a abrir o arquivo daquele diretório) é simples de reproduzir. O resultado final é execução de código arbitrário no contexto do usuário; se esse usuário tiver privilégios administrativos, o impacto escala para comprometimento total da máquina.
Versões
Como se proteger
A correção oficial é o boletim MS16-070 (KB3163610), lançado em 14/06/2016, que corrige a validação de entrada antes do carregamento de bibliotecas no OLE do Office. Os KBs específicos por produto citados pela Microsoft são: Visio 2007 SP3 — KB3114740; Visio 2010 SP2 (32 e 64 bits) — KB3114872; Visio 2013 SP1 (32 e 64 bits) — KB3115020; Visio 2016 (32 e 64 bits) — KB3115041; Visio Viewer 2007 SP3 — KB2596915 (conforme listagem do boletim). Aplicar o update via Windows Update ou WSUS resolve a causa raiz.
Se a atualização não puder ser aplicada imediatamente, o controle compensatório real é reduzir a superfície de entrega: bloquear abertura de documentos do Office diretamente a partir de compartilhamentos de rede ou WebDAV não confiáveis, e impedir execução de arquivos a partir de pastas de downloads/anexos onde o usuário não controla o conteúdo completo do diretório. Isso não elimina a falha, apenas reduz a chance de a DLL maliciosa estar presente no mesmo diretório do documento no momento da abertura.
O que não funciona como mitigação: renomear ou remover msoutls.dll do sistema não impede a exploração, porque o problema é a ordem de busca insegura, não a ausência do arquivo legítimo — o atacante fornece sua própria versão. Da mesma forma, treinamento de usuário para 'não abrir anexos suspeitos' ajuda a reduzir risco, mas não é controle técnico e não deve substituir o patch em ambientes que ainda rodam essas versões do Visio ou Visio Viewer.
Como detectar
Em nível de host, monitorar carregamento anômalo de uma DLL chamada msoutls.dll a partir de diretórios fora dos caminhos de instalação padrão do Office (por exemplo, pastas de usuário, downloads, compartilhamentos de rede ou mídia removível) é o sinal mais direto — ferramentas de monitoramento de processo/módulo (Sysmon Event ID 7 - Image Loaded, por exemplo) podem capturar isso ao registrar o caminho completo da DLL carregada por processos do Visio/Office (visio.exe, winword.exe, excel.exe conforme o contexto de embedding OLE).
Não há assinatura de rede confiável, já que a entrega do documento e da DLL pode ocorrer por qualquer canal (e-mail, compartilhamento, mídia). Na ausência de telemetria de carregamento de módulo, é difícil detectar tentativas retroativamente — vale inspecionar diretórios onde documentos do Office foram abertos por artefatos DLL não assinados ou com nome coincidente com bibliotecas do Office instaladas em outro caminho.