← back
CVE-2021-38003highunder attackCWE-755

CVE-2021-38003

85Vexday Risk Score

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

ssvc Actcvss 8.8epss 39%
from disclosure to weapon410 days
Published on NVDNov 23
1st PoC+410d
CISA KEVNov 3
exploitation probability
39%top 2% of all CVEs
observed exploitation
yesCISA + VulnCheck
3 public exploit(s)
Action required by CISAfederal deadline: 2021-11-17

Apply updates per vendor instructions.

Summary

Falha de implementação incorreta no motor V8 do Chrome que permite corrupção de heap a partir de uma página HTML maliciosa, sem necessidade de autenticação — só que a vítima abra a página. O Google confirmou exploração ativa antes da correção, e a CISA a lista no catálogo KEV como usada em campanhas reais, não é apenas um CVE crítico teórico.

Technical detail

A CISA descreve o bug com precisão maior que o advisory do Google: há um erro na implementação de JSON.stringify no V8 em que o valor interno TheHole — um sentinela usado internamente pelo motor para representar posições não inicializadas ou removidas em arrays/objetos — pode escapar para código JavaScript controlado pelo atacante. Isso é classificado como CWE-122 (heap-based buffer overflow) e CWE-755 (tratamento inadequado de condições excepcionais).

TheHole nunca deveria ser visível ao script; ele é um detalhe de implementação do motor. Quando esse valor vaza para uma referência acessível via JavaScript, o atacante pode manipular estruturas internas do V8 de forma que o motor trate memória de um jeito inconsistente com o tipo real do objeto (confusão de tipo), o que abre caminho para leitura e escrita fora dos limites esperados no heap — corrupção de heap controlável.

O atacante controla o conteúdo da página HTML/JS servida à vítima: a estrutura dos objetos passados a JSON.stringify e a sequência de operações que provoca o vazamento de TheHole. Não há detalhe técnico público mais profundo nas fontes disponíveis sobre o padrão exato de código que gatilha o bug — o Google restringiu os detalhes do bug (crbug.com/1263462) até que a maioria dos usuários atualizasse, prática padrão para bugs sob exploração ativa.

How it’s exploited

O vetor é uma página HTML/JavaScript maliciosa servida ao navegador da vítima — sem qualquer autenticação, mas com interação do usuário (abrir o link ou visitar a página), conforme o próprio vetor CVSS (AV:N/PR:N/UI:R). A execução do V8 acontece dentro do processo de renderização do Chrome; a corrupção de heap por si só normalmente concede execução de código dentro do sandbox do renderer, e costuma ser combinada com uma segunda falha (sandbox escape) para comprometimento total do sistema — mas essa combinação não está documentada nas fontes aqui disponíveis.

O relatório é assinado por Clément Lecigne, do Google Threat Analysis Group (TAG), e Samuel Groß, do Google Project Zero — combinação típica de descoberta durante investigação de campanhas de spyware/vigilância direcionada, não de fuzzing genérico. O próprio blog de release do Chrome afirma que exploits para esta CVE (e para CVE-2021-38000, corrigida no mesmo pacote) existiam in the wild no momento da correção.

A CISA confirma exploração ativa ao incluir a falha no catálogo KEV, com prazo de correção definido em 17/11/2021 (adicionada em 03/11/2021). Não há PoC pública detalhada nas fontes consultadas aqui — apesar de o enunciado da tarefa mencionar 'PoC pública' como sinal catalogado, nenhuma das fontes lidas contém um exploit funcional ou writeup técnico step-by-step.

Versions

Affected
Google Chrome anterior à versão 95.0.4638.69 (Windows, Mac e Linux). Navegadores Chromium-based que embarcam o mesmo V8 vulnerável (ex.: Microsoft Edge, Opera) também podem estar afetados, conforme nota da CISA, mas os números de versão específicos desses produtos não estão nas fontes consultadas.
Fixed in
Google Chrome 95.0.4638.69 e posteriores (canal estável, lançado em 28/10/2021). Fedora: pacote chromium atualizado para 95.0.4638.69-1 e consolidado em builds posteriores (96.0.4664.110-3.fc34). Debian bullseye: chromium 97.0.4692.71-0.1~deb11u1 via DSA-5046-1 (lote de correções que inclui esta CVE). Debian buster (oldstable) teve o suporte de segurança ao chromium descontinuado — recomendação do próprio Debian é migrar para bullseye ou trocar de navegador.

How to protect

A correção definitiva é atualizar o Chrome para a versão 95.0.4638.69 ou superior (canal estável, lançada em 28/10/2021). Isso vale para qualquer navegador baseado em Chromium que compartilhe o mesmo motor V8 vulnerável — o próprio registro da CISA no KEV nota que a falha pode afetar múltiplos navegadores Chromium-based, incluindo Microsoft Edge e Opera, além do Chrome.

Para distribuições Linux que empacotam Chromium separadamente: Fedora corrigiu na atualização para chromium 95.0.4638.69-1 (changelog do pacote, 12/11/2021), consolidada depois em builds posteriores como 96.0.4664.110-3.fc34. Debian corrigiu no ramo estável (bullseye) na versão 97.0.4692.71-0.1~deb11u1 via DSA-5046 — só que essa DSA cobre um lote grande de CVEs, então não há confirmação isolada de que essa versão específica é o primeiro release a corrigir só esta CVE; a correção original do fornecedor upstream (Google) permanece a referência de versão.

Não há mitigação de configuração ou flag que neutralize esta falha sem atualizar o binário — é um bug de implementação dentro do próprio motor JavaScript, não um comportamento configurável. Desabilitar JavaScript integralmente reduziria a superfície de ataque (já que o vetor depende de JS executando no contexto de JSON.stringify), mas isso quebra a maioria dos sites modernos e não é uma mitigação prática recomendável — é um custo alto demais para a maioria dos ambientes. A única ação real é atualização do binário do navegador.

How to detect

Não há assinatura de rede ou padrão de log confiável para detectar tentativas de exploração desta falha — o ataque ocorre inteiramente dentro do processo de renderização do V8 ao processar JavaScript malicioso, sem payload de rede distintivo. O sinal mais prático em ambiente corporativo é crash reports ou watchdogs do navegador registrando falhas anômalas do processo renderer (crashes de tipo heap corruption/type confusion) em máquinas que visitaram sites suspeitos, correlacionado com telemetria EDR de pós-exploração (spawn de processos filhos inesperados a partir do Chrome). Como o bug foi descoberto por equipes que rastreiam ameaças direcionadas (TAG/Project Zero), o padrão histórico sugere uso em campanhas de vigilância contra alvos específicos, não exploração massiva e indiscriminada — o que reduz a chance de haver IOCs públicos amplamente compartilhados.

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 95.0.4638.69 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.