Windows Kernel Local Elevation of Privilege Vulnerability
Priorize a correção. Ela está sob exploração confirmada pelo CISA e tem prova de conceito pública.
Apply updates per vendor instructions.
Resumo
Falha de elevação de privilégio local no kernel do Windows, especificamente no driver de criptografia cng.sys (Cryptography Next Generation), que permite que um processo já em execução com privilégios baixos rode código com privilégios de kernel (SYSTEM). O CVSS 7.8 reflete corretamente que não há componente de rede — o atacante precisa já ter pé no sistema — mas a falha ganhou peso real porque foi usada em ataques direcionados documentados, entrando no catálogo KEV da CISA.
Detalhamento técnico
A CISA classifica a falha como CWE-131 — cálculo incorreto de tamanho de buffer. O ponto exato do defeito está no tratamento de um IOCTL pelo driver cng.sys, que expõe funcionalidade criptográfica do kernel a processos em modo usuário. Um cálculo de tamanho malfeito nessa rotina gera um subtração/underflow que resulta em escrita fora dos limites de um buffer alocado no kernel, com o atacante controlando parte do conteúdo escrito.
A Microsoft não publicou detalhes de código no advisory (prática padrão do fornecedor para vulnerabilidades de kernel), então a mecânica de underflow descrita aqui vem da classificação CWE atribuída pela CISA, não de uma dissecação linha a linha da Microsoft. O resultado prático de uma escrita corrompida em estrutura de kernel é a base clássica para elevar privilégios: sobrescrever token de processo, ponteiro de função ou estrutura de objeto controlada pelo kernel.
O vetor de ataque é local (AV:L) e exige privilégio baixo prévio (PR:L) — ou seja, o atacante já precisa executar código como usuário padrão na máquina. Não há interação do usuário necessária (UI:N) além disso, e a exploração não depende de configuração não padrão conhecida: o cng.sys é carregado por padrão em todas as versões de Windows 10 listadas.
Como é explorada
Esta CVE não é um vetor de acesso inicial — é um degrau de escalação. O caso público documentado é uma cadeia de exploração usada em campanha atribuída a atores associados à Coreia do Norte contra pesquisadores de segurança: um exploit de dia zero no motor de renderização do Chrome (CVE-2020-15999, em FreeType) dava execução de código dentro do sandbox do navegador, e o CVE-2020-17087 no kernel do Windows era usado para escapar do sandbox e obter privilégios de SYSTEM na máquina da vítima.
Como o kernel está sempre presente e o driver cng.sys carrega por padrão, o pré-requisito real de exploração não é uma configuração especial do Windows, mas sim a etapa anterior da cadeia: o atacante precisa primeiro conseguir execução de código arbitrário (via outro exploit, malware já instalado, ou acesso físico/RDP com credenciais de baixo privilégio). Isolada, a falha não compromete uma máquina — ela transforma um comprometimento parcial em controle total do sistema.
Existe PoC pública, e a CISA confirma exploração ativa no mundo real (por isso a entrada no KEV), embora o campo "usado em ransomware" no catálogo esteja marcado como desconhecido. A complexidade de exploração é baixa uma vez que o atacante já tenha execução de código local, o que explica o AC:L no vetor CVSS.
Versões
Como se proteger
A correção veio nas atualizações de segurança da Microsoft de novembro de 2020, cobrindo todas as versões listadas do Windows 10 (1507, 1607, 1803, 1809, 1903 em x86/x64/ARM64, e 1909). O advisory oficial da Microsoft (MSRC) é a referência para o KB específico de cada branch — aplique a atualização cumulativa correspondente à sua versão de build, não apenas um patch isolado.
Não há paliativo de configuração conhecido e documentado que neutralize a falha sem o patch: desabilitar ou remover o cng.sys não é uma opção viável em produção, pois o driver sustenta funções criptográficas usadas por outros componentes do sistema. Controles compensatórios reais são indiretos: reduzir a superfície de execução de código não confiável na máquina (o que impede a primeira etapa da cadeia de exploração), aplicar least privilege agressivo para contas de usuário, e EDR com detecção de comportamento de escalação de privilégio no kernel — nenhum desses substitui o patch, apenas reduz a chance de a cadeia completa se formar.
O mito a descartar: como o CVSS é "apenas" 7.8 e exige privilégio local prévio, é comum subestimar a urgência. A entrada no KEV da CISA com prazo de correção (due date 2022-05-03 para o mandato federal) e o uso documentado em campanha de espionagem contra pesquisadores de segurança mostram que o risco real independe do vetor de rede — quem já tem qualquer forma de execução de código na máquina, mesmo sem privilégio, ganha caminho para SYSTEM.
Como detectar
Não há assinatura de rede aplicável, já que a exploração é inteiramente local e ocorre dentro do kernel. Em ambiente de resposta a incidentes, sinais indiretos incluem crashes ou comportamento anômalo do driver cng.sys em logs de eventos do sistema (Event Log, minidumps de kernel) e escalonamentos de privilégio inesperados detectados por EDR (processo de baixo privilégio passando a executar ações típicas de SYSTEM sem caminho legítimo). Como não há detalhe técnico público suficiente sobre o payload exato usado nos ataques documentados, não existe uma assinatura de detecção confiável e amplamente publicada para esta CVE isoladamente — o sinal mais forte de comprometimento vem da cadeia completa (exploit de navegador + artefatos pós-exploração), não da CVE-2020-17087 sozinha.