CVE-2016-7200
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 type confusion no motor JavaScript Chakra do Microsoft Edge, explorável via Array.filter para causar corrupção de memória e, em cadeia com outra falha, execução remota de código. Importa porque está no catálogo KEV da CISA com exploração confirmada e existe PoC pública funcional, mas o vetor exige que a vítima visite um site controlado pelo atacante — não há exploração passiva ou sem interação.
Detalhamento técnico
O bug está no tratamento de Array.filter pelo Chakra. Ao criar o array de destino, o motor usa ArraySpeciesCreate, que pode retornar tanto um array 'nativo' (armazenamento compacto de inteiros) quanto um array 'var' (armazenamento de ponteiros, mais largo). O laço interno que popula esse array de destino, porém, assume incondicionalmente que ele é do tipo var e grava valores usando DirectSetItemAt sem revalidar o tipo real do objeto — uma confusão de tipos (type confusion, próxima de CWE-843; a CISA classifica como CWE-119, restrição inadequada de operações em buffer de memória).
Como é explorada
Pesquisadores do Google Project Zero (Natalie Silvanovich, issue 922) demonstraram que é possível forçar o destino do filter a ser um array nativo definindo Symbol.species numa subclasse de Array e devolvendo, no getter, um construtor que retorna um array já existente com tipo diferente do esperado. Isso permite primeiro um information leak (ler ponteiros/valores fora dos limites como se fossem números) e, num segundo estágio, corromper heap escrevendo além do array alocado, já que elementos var ocupam o dobro do espaço de elementos int.
Versões
Como se proteger
A correção oficial veio no boletim MS16-129 (8 de novembro de 2016), via atualização cumulativa KB3199057 para Microsoft Edge no Windows 10 (RTM, 1511, 1607) e Windows Server 2016. Aplicar essa atualização cumulativa do Windows resolve a falha; não existe flag de configuração ou mitigação parcial documentada pelo fornecedor — o Chakra é parte integrante do Edge, então a única mitigação real sem atualizar é não usar o Edge para navegação não confiável ou desativar JavaScript (inviável na prática). Como o suporte ao Edge legado (EdgeHTML/Chakra) terminou, sistemas ainda expostos a essa versão do navegador devem ser considerados sem caminho de correção disponível e precisam migrar para um navegador com suporte ativo.
Como detectar
Não há assinatura de rede confiável documentada pelo fornecedor para esse CVE específico — a exploração ocorre inteiramente client-side, dentro do motor JS, via JavaScript ofuscado que manipula Array.filter, Symbol.species e subclasses de Array. Em ambiente de SOC, o sinal mais útil é indireto: telemetria de endpoint mostrando o processo do Edge (ou MicrosoftEdgeCP.exe/EdgeContentProcess) travando com falhas de acesso a memória após visitar um site específico, seguido de execução de processo filho inesperado (ex.: cmd.exe, powershell.exe, ou WinExec de outro binário) a partir do Edge — padrão consistente com os PoCs públicos que encadeiam CVE-2016-7200 com CVE-2016-7201 para RCE.