← volver
CVE-2016-3235highbajo ataque

CVE-2016-3235

98Vexday Risk Score

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

ssvc Actcvss 7.8epss 43%
de la publicación al arma0 días
Publicada en NVD16 jun
1ª PoC8 dic
metasploit8 dic
CISA KEV+1966d
probabilidad de explotación
43%top 1% de las CVE
explotación observada
CISA + VulnCheck
2 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2022-05-03

Apply updates per vendor instructions.

Resumen

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.

Detalle 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.

Cómo se explota

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.

Versiones

Afectadas
Microsoft Visio 2007 Service Pack 3; Microsoft Visio 2010 Service Pack 2 (edições 32 e 64 bits); Microsoft Visio 2013 Service Pack 1 (edições 32 e 64 bits); Microsoft Visio 2016 (edições 32 e 64 bits); Microsoft Visio Viewer 2007 Service Pack 3; Microsoft Visio Viewer 2010.
Corregidas en
Corrigido pelo boletim MS16-070 / KB3163610 (14/06/2016), com atualizações específicas: Visio 2007 SP3 → KB3114740; Visio 2010 SP2 (32/64 bits) → KB3114872; Visio 2013 SP1 (32/64 bits) → KB3115020; Visio 2016 (32/64 bits) → KB3115041; Visio Viewer 2007 SP3 → KB2596915.

Cómo protegerse

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.

Cómo 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.

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.
Microsoft Visio 2007 SP3, Visio 2010 SP2, Visio 2013 SP1, Visio 2016, Visio Viewer 2007 SP3, and Visio Viewer 2010 mishandle library loading, which allows local users to gain privileges via a crafted application, aka "Microsoft Office OLE DLL Side Loading Vulnerability."
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/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.