CVE-2020-1027
Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.
Apply updates per vendor instructions.
Summary
Falha de elevação de privilégio no Windows Kernel que permite que um processo já em execução no sistema, com privilégios baixos, escale para SYSTEM ao explorar uma corrupção de memória na manipulação de objetos do kernel. A CISA incluiu a CVE no catálogo KEV com CWE-787 (out-of-bounds write / heap buffer overflow), confirmando exploração ativa, apesar do CVSS moderado (7.8) e da exigência de acesso local prévio.
Technical detail
A descrição oficial da Microsoft é genérica — 'o Windows Kernel manipula objetos na memória de forma incorreta' — mas a classificação da CISA no KEV aponta CWE-787, out-of-bounds write. A referência técnica catalogada (PacketStormSecurity) aponta o componente afetado como o WinSxS (Windows Side-by-Side Assembly), especificamente a classe CNodeFactory do parser XML usado para processar manifests de assembly, com overflow de heap disparado no tratamento do elemento assemblyIdentity dentro de um documento de assembly.
WinSxS é o subsistema do Windows responsável por resolver e carregar múltiplas versões de bibliotecas compartilhadas (DLLs) simultaneamente, evitando o clássico 'DLL hell'. Ele depende de parsing de XML (os manifests de assembly) em contexto de kernel ou com privilégios elevados para montar contextos de ativação. Um parser XML operando em kernel-mode que não valida corretamente o tamanho de buffers ao processar atributos de um elemento como assemblyIdentity é terreno clássico para heap overflow: o atacante controla o conteúdo do manifest (uma estrutura XML relativamente simples de forjar) e, por consequência, os dados que sobrescrevem memória adjacente no heap do kernel.
O resultado de uma exploração bem-sucedida é corrupção controlada de estruturas do heap do kernel, usada para sobrescrever ponteiros de função, tabelas de tokens de processo ou outras estruturas que permitem elevar o token de segurança do processo atacante para SYSTEM. A CVE é distinta de CVE-2020-0913, CVE-2020-1000 e CVE-2020-1003 — outras EoPs de kernel corrigidas no mesmo boletim, o que sugere que a Microsoft encontrou múltiplos bugs de memória similares no mesmo ciclo de auditoria, mas cada um com localização e trigger próprios.
How it’s exploited
A exploração exige execução de código local prévia (AV:L, PR:L no vetor CVSS) — não é uma falha explorável remotamente por si só. O atacante precisa já ter uma sessão ou processo rodando no host, tipicamente após comprometimento inicial via phishing, exploração de outra falha (browser, documento malicioso) ou acesso físico/RDP com credenciais de baixo privilégio. A partir daí, ele constrói ou influencia um manifest de assembly malformado que, ao ser processado pelo parser XML do WinSxS, dispara o overflow de heap.
A complexidade de exploração (AC:L) é considerada baixa pela Microsoft, mas heap overflows em kernel geralmente exigem técnicas de heap grooming para tornar a corrupção de memória confiável entre versões de build e configurações de mitigação (KASLR, heap isolation). Existe PoC pública documentada (referência PacketStorm), o que reduz a barreira para reprodução por terceiros, e a CVE está no catálogo KEV da CISA, confirmando exploração real observada — a CISA não detalha publicamente o ator ou campanha.
O ganho final para o atacante é execução de código arbitrário com privilégios de SYSTEM a partir de um processo de usuário comum — o passo clássico de escalação de privilégio local usado para consolidar um comprometimento após acesso inicial, não para obter esse acesso inicial.
Versions
How to protect
A correção é aplicar a atualização de segurança da Microsoft referente a esta CVE, publicada no boletim de abril de 2020 (Patch Tuesday) para Windows 10 versões 1903 e 1909 (32-bit, ARM64 e x64) e para as versões correspondentes de Windows Server. As fontes consultadas não trazem o número exato de KB/build por edição — confirme no MSRC Security Update Guide (portal.msrc.microsoft.com) qual atualização cumulativa corresponde à sua versão específica antes de considerar o sistema corrigido.
Não há paliativo de configuração conhecido e documentado nas fontes disponíveis: como a falha está no parsing de manifests pelo componente WinSxS, que é parte estrutural do carregamento de DLLs no Windows, desabilitar ou remover o componente não é uma mitigação viável em produção. Controles compensatórios reais são indiretos: restringir a superfície de ataque local — reduzir quem tem execução de código não confiável na máquina (aplicação de whitelisting, EDR com detecção de exploração de kernel, princípio de menor privilégio para contas de usuário) — já que a exploração depende de acesso local prévio.
Mito a descartar: como a CVE está classificada como elevação de privilégio local, ela não elimina o risco de outras vulnerabilidades de acesso inicial; ela é o segundo estágio de uma cadeia de ataque. Corrigi-la sem tratar o vetor de entrada (phishing, exploração de aplicação exposta) mitiga apenas a escalação, não o comprometimento inicial.
How to detect
Não há assinatura de rede aplicável, já que a exploração é local e não envolve tráfego de rede diretamente observável. Em nível de host, sinais possíveis incluem crashes ou exceções anômalas em processos que interagem com o subsistema WinSxS (parsing de manifests de assembly), criação de tokens de processo com privilégios elevados sem trilha administrativa correspondente, e alertas de EDR relacionados a técnicas de heap corruption ou privilege escalation no kernel. As fontes consultadas não descrevem IOCs específicos, hash de exploit ou padrão de log confiável — a ausência de detalhamento público sobre a campanha que motivou a inclusão no KEV da CISA é, em si, uma lacuna relevante para quem monitora esse tipo de exploração.