← back
CVE-2016-3309highunder attackransomware

CVE-2016-3309

78Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 7.8epss 21%
from disclosure to weapon423 days
Published on NVDAug 9
1st PoC+423d
CISA KEV+2044d
exploitation probability
21%top 3% of all CVEs
observed exploitation
yesCISA + VulnCheck
4 public exploit(s)
Action required by CISAfederal deadline: 2022-04-05

Apply updates per vendor instructions.

Summary

Falha de elevação de privilégio no componente kernel-mode do Win32k do Windows, corrigida pelo boletim MS16-098 (agosto/2016). Permite que um usuário local com poucos privilégios execute uma aplicação especialmente construída e obtenha execução de código em modo kernel — ou seja, vira SYSTEM a partir de uma sessão comum. Está no catálogo KEV da CISA por exploração confirmada, e existe PoC público detalhado que expõe o mecanismo exato da corrupção de memória.

Technical detail

A vulnerabilidade está no driver win32k (kernel-mode), especificamente na rotina win32kfull!bFill, responsável por operações de preenchimento de estruturas gráficas (bitmaps/paletas). A Microsoft descreve a causa como falha no tratamento de objetos em memória; a CISA classifica como CWE-264 (controle de privilégio/permissão inadequado), mas a análise técnica publicada pela siberas identifica concretamente um pool overflow — escrita fora dos limites de um buffer alocado no pool do kernel, disparada por manipulação de objetos GDI (bitmaps e paletas) com dimensões ou parâmetros controlados pelo atacante.

O atacante controla os parâmetros dos objetos GDI que alimentam bFill — dimensões de bitmap, entradas de paleta — de forma a fazer a rotina escrever além do buffer alocado, corrompendo estruturas adjacentes no pool do kernel. Isso é primitiva clássica de escalonamento local: corrupção controlada de memória kernel que, com técnicas de heap grooming, vira controle de execução em modo kernel.

A MS16-098 corrigiu quatro CVEs distintos no mesmo boletim (CVE-2016-3308, 3309, 3310, 3311), todos win32k EoP mas com causas técnicas diferentes — a Microsoft é explícita em dizer que CVE-2016-3309 é uma falha distinta das outras três. O nome dado pela pesquisa posterior ('wild pool overflow') sugere que a falha foi originalmente identificada por já estar sendo explorada, e não por auditoria proativa — reforçando por que aparece no catálogo KEV.

How it’s exploited

Pré-requisito real: acesso local autenticado, mesmo que com privilégios baixos (PR:L no vetor CVSS). Não é explorável remotamente e não depende de interação de outro usuário (UI:N) — o próprio atacante executa a aplicação maliciosa que dispara o bug. Isso limita o impacto a cenários onde o atacante já tem um shell ou sessão de usuário no Windows: pós-exploração de outra falha, malware já executando com usuário padrão, ou insider com conta de baixo privilégio.

O exploit público (siberas, 2017, publicado como CVE-2016-3309_Reloaded) demonstra duas técnicas de exploração — uma via manipulação de Bitmaps e outra via Paletas — ambas culminando em corrupção do pool do kernel controlada o suficiente para escrever em memória arbitrária e escalar para SYSTEM. Uma terceira variante do PoC demonstra apenas um deadlock do sistema decorrente da validação de handle malformada, sem chegar a RCE — útil para reconhecer tentativas menos sofisticadas ou falhas de exploração.

O caráter 'wild' documentado nos writeups indica exploração ativa observada antes da correção completa do bug, o que motivou a inclusão tardia no catálogo KEV da CISA (adicionado em 2022, cinco anos após o patch) — sinal de que a exploração continuou relevante em ambientes não corrigidos por muito tempo, tipicamente em cadeias de ataque que primeiro obtêm execução com usuário comum e depois usam esta CVE para virar SYSTEM.

Versions

Affected
Windows Vista SP2; Windows Server 2008 SP2 e Windows Server 2008 R2 SP1; Windows 7 SP1; Windows 8.1; Windows Server 2012 (Gold) e Server 2012 R2; Windows RT 8.1; Windows 10 Gold, versão 1511 e versão 1607 — todas antes da atualização de agosto de 2016.
Fixed in
KB3177725 (Vista SP2, Server 2008 SP2, Server 2008 R2 SP1, Windows 7 SP1, Windows 8.1, Server 2012, Server 2012 R2, RT 8.1); KB3176492 (Windows 10 Gold); KB3176493 (Windows 10 versão 1511); KB3176495 (Windows 10 versão 1607). Todas publicadas junto ao boletim MS16-098 em 09/08/2016.

How to protect

Aplicar a atualização do boletim MS16-098 (KB3178466). Os pacotes específicos por sistema, conforme a Microsoft: KB3177725 para Windows Vista SP2, Server 2008 SP2, Server 2008 R2 SP1, Windows 7 SP1, Windows 8.1, Server 2012, Server 2012 R2 e Windows RT 8.1; KB3176492 para Windows 10 versão inicial (Gold); KB3176493 para Windows 10 versão 1511; KB3176495 para Windows 10 versão 1607. Todas essas versões estão fora de suporte hoje — qualquer sistema ainda rodando essas builds sem atualização de segurança está exposto a esta e a centenas de outras falhas de kernel já corrigidas, e o caminho real de mitigação é migrar para uma versão suportada do Windows.

Não há paliativo de configuração conhecido e documentado pelo fornecedor para esta falha específica — ela está no caminho de código padrão do subsistema gráfico do kernel, usado por qualquer aplicação Win32 normal, então não existe flag para 'desligar' a função vulnerável sem quebrar funcionalidade básica do sistema. Controle compensatório real é reduzir a superfície de ataque local: impedir execução de binários não confiáveis por usuários de baixo privilégio, isolar sessões, e usar EDR para detectar comportamento de exploração de kernel (crashes anômalos em win32k/csrss, chamadas atípicas de GDI). Isso mitiga o risco, não fecha a falha.

How to detect

Não há assinatura de rede a procurar — a exploração é inteiramente local, dentro do kernel, sem tráfego externo associado. Em endpoints, os sinais possíveis são: crashes ou comportamento anômalo em win32k.sys/win32kfull.sys, criação de objetos GDI (bitmaps/paletas) com parâmetros fora do padrão por processos de usuário comum, e telemetria de EDR que capture chamadas de escalonamento de privilégio seguidas de execução com token SYSTEM a partir de processo que não deveria ter esse nível. O PoC público da siberas (CVE-2016-3309_Reloaded) tem binários e comportamento documentados que podem servir de base para regras de detecção baseadas em comportamento, mas não existe indicador de comprometimento genérico e confiável publicado pelo fornecedor.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
The kernel-mode drivers in Microsoft Windows Vista SP2; Windows Server 2008 SP2 and R2 SP1; Windows 7 SP1; Windows 8.1; Windows Server 2012 Gold and R2; Windows RT 8.1; and Windows 10 Gold, 1511, and 1607 allow local users to gain privileges via a crafted application, aka "Win32k Elevation of Privilege Vulnerability," a different vulnerability than CVE-2016-3308, CVE-2016-3310, and CVE-2016-3311.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.