CVE-2020-0787
Patch now. It under exploitation confirmed by CISA and has a working public exploit.
Apply updates per vendor instructions.
Summary
Falha de elevação de privilégio local no serviço Windows Background Intelligent Transfer Service (BITS), que roda como SYSTEM. Um usuário local sem privilégios administrativos pode abusar de como o BITS resolve links simbólicos durante operações de arquivo para forçar o serviço a mover, sobrescrever ou manipular arquivos arbitrários com privilégios de sistema. Importa porque está no catálogo KEV da CISA com exploração confirmada, tem PoC pública e módulo Metasploit — é um caminho batido de local privilege escalation em pentests e em cadeias de pós-exploração, mas exige que o atacante já tenha um shell/sessão no host.
Technical detail
O BITS é o serviço do Windows responsável por transferências de arquivo em segundo plano (usado por Windows Update, antivírus, e diversas aplicações). Ele executa como SYSTEM e, em determinados momentos de um job de transferência, realiza operações de arquivo — criação, movimentação, cópia — em diretórios de trabalho que podem ser influenciados por um usuário com baixo privilégio. A CVE está catalogada sob CWE-269 (Improper Privilege Management) e CWE-59 (Improper Link Resolution Before File Access, ou 'link following'), o que indica o mecanismo central: o serviço verifica ou opera sobre um caminho e, entre a verificação e o uso efetivo (padrão clássico TOCTOU), permite que esse caminho tenha sido substituído por um link simbólico/junction point apontando para um destino controlado pelo atacante.
O que o atacante controla é o conteúdo e a estrutura de arquivos/diretórios em locais onde ele tem permissão de escrita e que interagem com jobs BITS. Ao trocar um arquivo ou diretório legítimo por um symlink no momento certo, o processo SYSTEM do BITS acaba seguindo esse link e executando a operação de arquivo (mover, sobrescrever, excluir) sobre um alvo arbitrário do sistema de arquivos — algo que o atacante normalmente não teria permissão de tocar.
O vetor CVSS (AV:L/AC:L/PR:N/UI:R) confirma que não são necessários privilégios elevados para disparar a falha, a complexidade de ataque é baixa, mas há um componente de interação/timing (UI:R) coerente com a natureza de race condition da exploração — o atacante precisa que o serviço BITS execute a operação vulnerável em uma janela específica.
How it’s exploited
O vetor é puramente local: o atacante precisa de uma sessão no host — console, RDP, ou um shell obtido por outro meio (phishing, outra vulnerabilidade, credencial comprometida) — sem necessidade de privilégios administrativos prévios. A partir daí, a exploração envolve preparar um diretório/arquivo controlado, disparar ou aguardar uma operação do BITS que toque nesse caminho, e substituí-lo por um link simbólico durante a janela de corrida entre a verificação e o uso do caminho pelo serviço. O resultado bem-sucedido é execução de código ou manipulação de arquivo com privilégios SYSTEM, ou seja, escalonamento completo de usuário padrão para controle total da máquina.
Existe PoC pública (referenciada no Packet Storm) e módulo Metasploit conhecido, o que reduz drasticamente a barreira técnica — a exploração deixou de exigir engenharia reversa e passou a ser reprodução de ferramenta já publicada. A presença no catálogo KEV da CISA confirma exploração ativa observada, embora a CISA não a associe a campanhas de ransomware conhecidas.
Na prática, esta CVE é usada como passo de post-exploitation: um invasor que já obteve execução de código como usuário comum em um Windows 10 ou Windows Server não corrigido usa essa falha para virar SYSTEM e seguir para dump de credenciais, persistência ou movimento lateral. Não é uma vulnerabilidade de acesso remoto por si só.
Versions
How to protect
A correção definitiva é aplicar a atualização de segurança da Microsoft referente a esta CVE (Patch Tuesday de março de 2020, publicado no advisory MSRC CVE-2020-0787) nas versões afetadas de Windows 10 (1903, 1909) e Windows Server correspondentes. Consulte o boletim MSRC para o número de KB e build específico de cada versão/arquitetura, já que a Microsoft publica pacotes cumulativos distintos por branch — não há aqui um número de build único confiável para citar sem risco de erro.
Se a atualização não puder ser aplicada imediatamente, o controle compensatório real é reduzir a superfície de usuários locais não confiáveis com sessão interativa nos hosts afetados (RDP, terminal services, contas compartilhadas) e monitorar/restringir a capacidade de criar symlinks/junctions em diretórios usados por jobs BITS — mas isso é mitigação parcial, não substitui o patch, porque a falha está na lógica do próprio serviço, não em uma configuração exposta.
Desabilitar o serviço BITS inteiramente elimina o vetor, mas tem custo operacional alto: Windows Update e diversas aplicações corporativas dependem dele para transferências em segundo plano — normalmente inviável em produção. Não existe mitigação via WAF ou controle de rede, já que a exploração é 100% local e não trafega em rede.
How to detect
A exploração é inteiramente local e não deixa rastro de rede, o que limita a detecção a telemetria de endpoint. Sinais a procurar: criação de reparse points/links simbólicos por processos ou contas sem privilégio administrativo em diretórios usados por jobs BITS, seguida de atividade anômala do processo svchost.exe hospedando o serviço BITS (acesso, movimentação ou sobrescrita de arquivos fora do escopo esperado do job), e uso de utilitários como bitsadmin.exe por contas não administrativas em sequência temporal suspeita com criação de links.
Não há assinatura de rede ou indicador único confiável — a ausência de sinal claro em ambientes sem EDR com telemetria de criação de reparse point e monitoramento de integridade de arquivo é uma limitação real: em muitos ambientes, a exploração passa sem detecção até a escalada resultar em ação subsequente (dump de LSASS, criação de conta, etc.) que gere alerta por outro controle.