← back
CVE-2020-16009highunder attackCWE-787CWE-843

CVE-2020-16009

83Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 8.8epss 49%
from disclosure to weapon
Published on NVDNov 3
CISA KEV+365d
exploitation probability
49%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
1 public exploit(s)
Action required by CISAfederal deadline: 2022-05-03

Apply updates per vendor instructions.

Summary

Falha de type confusion no compilador JIT TurboFan do V8, o motor JavaScript do Chrome, que permite corromper heap ao processar uma página HTML/JS manipulada. Reportada por Clement Lecigne (Google TAG) e Samuel Groß (Google Project Zero), a Google confirmou exploração ativa antes da correção — está no catálogo KEV da CISA e tem PoC pública, o que a torna relevante mesmo isolada, embora a execução resultante fique inicialmente confinada ao processo renderer sandboxed do Chrome.

Technical detail

A descrição oficial da Google fala em 'inappropriate implementation in V8', mas o título usado em análises técnicas e no PoC divulgado no Packet Storm ('Chrome V8 Turbofan Type Confusion') indica que o problema é um type confusion (CWE-843) no TurboFan, o compilador just-in-time do V8. Esse tipo de falha ocorre quando o otimizador do TurboFan faz suposições incorretas sobre o tipo de um objeto JavaScript durante as fases de especialização/inlining, e código gerado posteriormente trata a memória como se fosse de um tipo diferente do real.

O atacante controla o conteúdo do script executado pela página — estruturas de objetos, arrays, funções que forçam o V8 a compilar caminhos otimizados com hipóteses de tipo específicas, e depois viola essas hipóteses em tempo de execução sem invalidar o código JIT gerado. O resultado é leitura/escrita fora dos limites esperados no heap do processo renderer, que pode ser escalada para corrupção controlada de heap.

A CVE foi corrigida internamente no Chromium (bug 1143772), com detalhes mantidos restritos pela Google por um período, prática padrão quando há exploração ativa — para não facilitar réplicas do exploit antes que a maioria dos usuários atualize.

How it’s exploited

O vetor é uma página HTML com JavaScript malicioso; a exploração é puramente remota e não exige autenticação nem configuração não padrão — qualquer usuário que abra a página no Chrome vulnerável está exposto. O vetor CVSS marca UI:R (interação do usuário necessária), ou seja, a vítima precisa navegar até a página ou ser induzida a abri-la (phishing, malvertising, comprometimento de site).

A exploração de type confusion em JIT normalmente exige heap grooming preciso — preparar o layout de memória do processo antes de acionar a falha — e conhecimento detalhado da versão exata do V8, o que eleva a complexidade de desenvolvimento do exploit, mesmo que a exploração final seja simples de disparar. O escopo do CVSS é 'Unchanged' (S:U), então a falha por si só compromete o processo renderer, sandboxed; para controle total do sistema, exploits reais costumas encadear uma segunda falha de escape de sandbox — a Google não confirmou publicamente qual cadeia foi usada nos ataques observados.

A Google declarou estar 'aware of reports that an exploit for CVE-2020-16009 exists in the wild' no mesmo anúncio que corrigiu a falha, e a CISA a lista no catálogo KEV, confirmando exploração ativa antes ou no momento da divulgação — não se trata de exploração hipotética.

Versions

Affected
Google Chrome anterior a 86.0.4240.183 (Windows, Mac e Linux). Builds Chromium/derivados anteriores à mesma base de código estão igualmente expostos.
Fixed in
Google Chrome 86.0.4240.183 e posteriores. Pacotes Chromium de distribuição: Fedora chromium-86.0.4240.183-1 (Fedora 33) e chromium-87.0.4280.66-1 (Fedora 32, via atualização cumulativa); Gentoo GLSA 202011-12 exige www-client/chromium e www-client/google-chrome >= 86.0.4240.193.

How to protect

Atualizar para Google Chrome 86.0.4240.183 ou posterior elimina a falha; distribuições baseadas em Chromium (Fedora, openSUSE, Gentoo) publicaram pacotes chromium equivalentes na mesma janela (Fedora 86.0.4240.183-1, Gentoo exige >= 86.0.4240.193, já cobrindo esta e outras CVEs do mesmo lote). Não há flag de configuração ou paliativo funcional documentado pelo fornecedor — o Gentoo GLSA 202011-12 registra explicitamente 'There is no known workaround at this time'.

Desabilitar JavaScript reduz a superfície de ataque mas quebra a usabilidade da maioria dos sites e não é uma mitigação prática recomendada pelo fornecedor. Como a falha está no JIT do V8 embutido no Chrome, ela também afeta qualquer aplicação que empacote esse motor (Electron, navegadores derivados de Chromium) até que atualizem seus próprios binários — verificar a versão do Chromium embarcado é necessário além de apenas atualizar o navegador principal.

How to detect

Não há assinatura de rede ou log confiável documentada publicamente para detectar tentativas de exploração desta CVE especificamente — a exploração ocorre inteiramente dentro do processo renderer via JavaScript, sem padrão de tráfego distintivo conhecido. Indicadores indiretos possíveis incluem crashes inesperados do processo renderer do Chrome (visíveis em chrome://crashes ou logs de crash corporativos) após visita a páginas específicas, e telemetria de EDR que capture comportamento anômalo pós-comprometimento do renderer — mas nenhum IOC específico para CVE-2020-16009 foi publicado pela Google ou por pesquisadores nas fontes analisadas.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
Inappropriate implementation in V8 in Google Chrome prior to 86.0.4240.183 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Affected products
Google · Chrome
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.