CVE-2020-0601
Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.
Apply updates per vendor instructions.
Summary
Falha na validação de certificados ECC (Elliptic Curve Cryptography) pelo CryptoAPI do Windows (Crypt32.dll), que permite forjar um certificado que o sistema aceita como assinado por uma Autoridade Certificadora raiz confiável. Na prática, um atacante pode assinar executáveis maliciosos fazendo-os parecer legitimamente assinados, ou interceptar conexões HTTPS validadas via CryptoAPI. Foi reportada pela NSA à Microsoft — primeira vez que a agência foi publicamente creditada por um report de vulnerabilidade — e ganhou o apelido 'CurveBall'.
Technical detail
A causa é CWE-295 (Improper Certificate Validation). O CryptoAPI, ao validar um certificado ECC, verifica se a chave pública do certificado 'bate' com a chave pública de uma CA raiz confiável instalada no sistema. O problema é que essa comparação considera apenas o ponto público final, e o Windows permite que certificados ECC especifiquem parâmetros de curva explícitos (curva customizada, ponto gerador G próprio) em vez de usar apenas curvas nomeadas padrão (P-256, P-384 etc). Um atacante pode escolher parâmetros de curva forjados sob os quais ele conhece a chave privada correspondente a um ponto que, matematicamente, colide com a chave pública pública da CA raiz legítima nessa curva alternativa.
O resultado é que o Windows reconstrói a cadeia de confiança e conclui, erroneamente, que o certificado forjado descende da CA raiz confiável — porque a verificação de igualdade de chave pública não amarra os parâmetros de domínio da curva aos parâmetros esperados daquela CA específica. O atacante controla integralmente os parâmetros da curva do certificado forjado e a chave privada correspondente, o que é suficiente para gerar um certificado intermediário ou de assinatura de código que o sistema trata como válido.
O impacto declarado pela Microsoft é spoofing (integridade — assinatura falsa aceita como legítima), mas a CISA no KEV amplia a descrição: exploração bem-sucedida também permite ataques man-in-the-middle e decriptação de tráfego confidencial em conexões que dependem da validação de certificado do CryptoAPI (por exemplo, aplicações e componentes do sistema que usam Crypt32.dll para TLS, não necessariamente navegadores com sua própria stack criptográfica).
How it’s exploited
O vetor mais divulgado é assinatura de código: o atacante gera um certificado ECC malicioso com os parâmetros de curva forjados, usa-o para assinar um executável ou um driver, e o Windows exibe esse binário como assinado por uma cadeia confiável — sem alertas de assinatura inválida. Não há necessidade de acesso prévio à máquina da vítima para forjar o certificado; a exploração ocorre no momento em que a vítima executa ou abre o arquivo assinado, ou quando estabelece uma conexão validada pelo CryptoAPI vulnerável. A interação do usuário (executar o arquivo, aceitar a conexão) é o principal pré-requisito, refletido no UI:R do vetor CVSS.
O segundo vetor, TLS/HTTPS MITM, exige que o atacante esteja posicionado na rede entre a vítima e o servidor legítimo (ataque de rede clássico) e que a aplicação afetada dependa do CryptoAPI para validar o certificado do servidor — isso não se aplica automaticamente a navegadores que usam suas próprias bibliotecas de validação (Chrome e Firefox, por exemplo, não usam Crypt32.dll da mesma forma para a cadeia de confiança).
Uma PoC pública ('CurveBall') foi publicada rapidamente após a divulgação do patch, comprovando a viabilidade prática de gerar certificados colidentes em poucos segundos com hardware comum. A vulnerabilidade está no catálogo KEV da CISA como exploração confirmada in-the-wild, e a facilidade de reprodução da PoC — combinada ao fato de a falha atingir a confiança em assinaturas de código, pilar de defesas antimalware — tornou o CVE um dos mais críticos do Patch Tuesday de janeiro de 2020.
Versions
How to protect
A correção definitiva é aplicar a atualização de segurança da Microsoft lançada no Patch Tuesday de janeiro de 2020, que corrige a validação de parâmetros de curva ECC no CryptoAPI para os produtos listados (Windows 10 1903/1909 em todas as arquiteturas e Windows Server nas versões afetadas). Não há uma flag de configuração ou desativação de componente que mitigue a falha sem o patch — a validação defeituosa está no núcleo do CryptoAPI usado por todo o sistema para assinatura de código e TLS, então remover ou desabilitar Crypt32.dll não é viável.
A CISA, via Diretiva Emergencial ED 20-02, exigiu que agências federais dos EUA aplicassem o patch dentro de prazo curto (10 dias) dada a gravidade — sinal de que não existe controle compensatório equivalente à correção do fornecedor. Onde o patch imediato não for possível, o controle prático é reduzir a superfície: restringir execução de binários não assinados por fontes já conhecidas via políticas de allowlisting (AppLocker/WDAC) independentes da validação de assinatura do CryptoAPI, e monitorar tráfego de rede quanto a certificados anômalos — mas isso reduz risco, não elimina a vulnerabilidade subjacente.
O KEV da CISA registra a data de inclusion em 2021-11-03 com prazo (due date) de 2022-05-03 para remediação, o que reflete o ciclo de gestão de vulnerabilidades federal, não uma nova janela de exploração — a exploração ativa e a PoC já circulavam desde janeiro de 2020, logo após a divulgação original.
How to detect
O principal sinal é a presença de certificados ECC com parâmetros de curva explícitos (custom domain parameters) em vez de referência a curvas nomeadas padrão, especialmente em certificados de assinatura de código ou em cadeias TLS — CAs legítimas praticamente não emitem certificados com parâmetros de curva explícitos para uso comum, então sua presença é fortemente anômala. A NSA e outros publicaram, na época, scripts/ferramentas de triagem para varrer binários e certificados quanto a esse padrão.
Não há um IOC de rede único e confiável (como uma string ou payload fixo), já que a exploração consiste em criptografia matemática legítima com parâmetros forjados — logs de antivírus/EDR que sinalizem 'assinatura válida mas emissor suspeito' ou falhas de correlação entre a CA raiz esperada e os parâmetros de curva do certificado folha são o melhor indício disponível, mas exigem inspeção específica da cadeia de certificados, não detecção automática padrão dos sistemas de log convencionais.