CVE-2016-0040
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply updates per vendor instructions.
Resumo
Falha de elevação de privilégio no kernel do Windows (ntoskrnl.exe), no subsistema WMI, que permite a um usuário local autenticado executar código com privilégios de SYSTEM a partir de uma aplicação especialmente criada. Afeta apenas o ramo NT 6.x mais antigo — Windows Vista SP2, Server 2008 SP2/R2 SP1 e Windows 7 SP1 — e está no catálogo KEV da CISA por exploração confirmada, com módulo Metasploit público desde 2018.
Detalhamento técnico
A causa raiz, segundo a documentação do módulo de exploração público, é uma variável de pilha não inicializada (CWE-457) manipulada dentro do subsistema WMI do ntoskrnl.exe, acionada por um cenário de 'receive notification' do WMI. O CISA KEV classifica a falha sob CWE-264 (controle de permissões/privilégios/acesso), que é a categoria mais genérica de escalonamento de privilégio — a divergência de classificação reflete que a Microsoft nunca publicou detalhes internos do bug, e a atribuição de CWE mais precisa vem de pesquisa de terceiros que reproduziu a falha, não do fornecedor.
O atacante controla o gatilho da notificação WMI através de uma aplicação local que ele mesmo escreve e executa. Como a variável de pilha não é inicializada, seu conteúdo depende do estado anterior da pilha do kernel, que pode ser influenciado ou lido de forma a corromper estruturas internas ou vazar/usar dados que permitem execução de código em contexto de kernel.
A MS16-014 é um boletim que corrigiu simultaneamente cinco CVEs distintos (0040, 0041, 0042, 0044, 0049) com causas e componentes diferentes — kernel, carregamento de DLL, Sync Framework e Kerberos. A CVE-2016-0040 é especificamente a parte de 'Windows Elevation of Privilege Vulnerability' desse pacote, corrigida pela atualização KB3126593.
Como é explorada
O vetor exigido é acesso local: o atacante precisa já ter uma sessão de execução de código na máquina (baixo privilégio é suficiente, conforme PR:N no vetor CVSS) e rodar uma aplicação/DLL que dispara a condição no subsistema WMI. Não há componente de rede — não é explorável remotamente por si só, apenas como etapa de post-exploitation após obter um shell/sessão de baixo privilégio.
O módulo Metasploit público (baseado em pesquisa de 'smmrootkit' e 'de7ec7ed') injeta reflexivamente uma DLL de exploração em um processo (por padrão, um notepad.exe oculto lançado para esse fim), aciona a falha e injeta o payload para execução em contexto elevado. O próprio módulo restringe o alvo a Windows 7 SP0/SP1 x64, verificando a versão do ntoskrnl.exe (builds até 7601, correspondente a Windows 7/Server 2008 R2 sem a correção).
A presença no catálogo KEV da CISA (adicionada em 2022-03-28) confirma exploração em ambiente real, mesmo anos após a divulgação original — típico de falhas de EoP local usadas para consolidar acesso após comprometimento inicial em ambientes que nunca foram atualizados.
Versões
Como se proteger
A correção oficial é aplicar a atualização MS16-014 (KB3134228, pacote de atualização 3126593) correspondente ao sistema operacional e arquitetura. Como o boletim cobre cinco CVEs diferentes, aplicar apenas a atualização não implica corrigir todas — mas para CVE-2016-0040 especificamente, a KB3126593 é a que resolve o componente de elevação de privilégio.
Não há paliativo de configuração conhecido e documentado nas fontes disponíveis — a falha está no kernel e a mitigação real é a correção binária. Como os sistemas afetados (Vista, Server 2008, Windows 7) estão fora do ciclo de suporte padrão da Microsoft, ambientes que ainda os operam devem considerar isolamento de rede rígido, remoção de contas de baixo privilégio desnecessárias e monitoramento de EDR como controles compensatórios — não como substitutos do patch.
Mito a descartar: como o vetor exige execução local, alguns times assumem que segmentação de rede ou firewall já neutraliza o risco. Isso não é verdade — a falha é explorada depois que o atacante já tem qualquer execução de código na máquina (via phishing, outra vulnerabilidade, ou conta de serviço comprometida), servindo como caminho de escalonamento, não de acesso inicial.
Como detectar
Não há assinatura de rede aplicável, já que a exploração é inteiramente local. Em nível de host, sinais possíveis incluem injeção reflexiva de DLL em processos legítimos como notepad.exe (padrão usado pelo módulo Metasploit público), criação de thread remota inesperada nesse tipo de processo, ou um processo de baixo privilégio que subitamente executa em contexto SYSTEM sem explicação de negócio. Sem telemetria de EDR capturando injeção de código e criação de thread, a exploração tende a passar sem log específico — nenhuma fonte consultada documenta um IOC ou assinatura oficial de detecção para esta CVE.