CVE-2016-5198
Prioriza la corrección. Ella está bajo explotación confirmada por CISA.
Apply updates per vendor instructions.
Resumen
Falha de acesso a memória fora dos limites (out-of-bounds) no motor JavaScript V8 do Google Chrome, causada por otimizações incorretas do compilador JIT. Um atacante que convença a vítima a abrir uma página HTML maliciosa consegue ler e escrever memória arbitrária dentro do processo, o que pode escalar para execução de código. Está no catálogo KEV da CISA como exploração confirmada, mas é uma falha de 2016 já corrigida há quase uma década — relevância prática hoje se restringe a builds Chromium legadas, embarcadas ou não atualizadas (kiosks, appliances, WebViews antigas).
Detalle técnico
O bug reside no V8, o motor JavaScript/WebAssembly do Chrome (também usado por Node.js e outros produtos baseados em Chromium). Segundo a classificação da CISA no catálogo KEV, a falha mapeia para CWE-125 (leitura fora dos limites) e CWE-787 (escrita fora dos limites), consistente com a descrição do fornecedor de 'incorrect optimisation assumptions' — ou seja, o compilador otimizador do V8 (na época em transição entre Crankshaft e TurboFan) fez suposições erradas sobre tipos, formas de objeto ou limites de array durante a compilação just-in-time, e o código gerado acessou memória fora da região alocada para o objeto.
O relatório original (crbug.com/659475) foi mantido restrito pelo Google até a maioria dos usuários atualizar, prática padrão para bugs de motor com potencial de exploração generalizada, e as fontes disponíveis não detalham qual otimização específica (inlining, eliminação de bounds check, especulação de tipo, etc.) falhou. Não há, portanto, confirmação pública do primitivo exato de corrupção — apenas que resulta em leitura/escrita arbitrária dentro do heap do renderer, controlada pelo atacante via JavaScript executado na página.
O achado foi creditado ao Tencent Keen Security Lab, trabalhando com a Trend Micro Zero Day Initiative (ZDI), o que sugere descoberta via pesquisa dirigida (possivelmente fuzzing ou revisão manual de código do otimizador) e não necessariamente exploração selvagem observada primeiro.
Cómo se explota
O vetor é uma página HTML/JavaScript maliciosa servida ao navegador — sem necessidade de autenticação, mas com interação do usuário obrigatória (UI:R no vetor CVSS): a vítima precisa abrir a página, seja por link, anúncio malicioso ou redirecionamento. Não há pré-condição de configuração não padrão; qualquer Chrome nas versões afetadas, com JavaScript habilitado (padrão), está exposto.
Explorar corrupção de memória em V8 tipicamente segue o padrão de bugs de motor JS: o atacante manipula o código JS para forçar o compilador otimizado a gerar acesso fora de limites, converte isso em um primitivo de leitura/escrita arbitrária controlando objetos JavaScript adjacentes na heap, e a partir daí corrompe ponteiros de função ou metadados de objeto para desviar o fluxo de execução. Para chegar a execução de código completo no sistema (fora do processo renderer), normalmente é necessário encadear com uma segunda falha de escape do sandbox do Chrome — as fontes consultadas não confirmam se essa CVE específica foi explorada isoladamente ou em conjunto com outro bug de sandbox escape.
A presença no catálogo KEV da CISA (adicionada em 2022-06-08, bem depois da publicação original em 2017) indica exploração confirmada em algum momento, mas as fontes disponíveis não detalham campanha, ator ou contexto temporal da exploração — é comum a CISA incluir vulnerabilidades antigas do V8 ao identificar reaproveitamento em kits de exploração ou análises forenses tardias.
Versiones
Cómo protegerse
A correção é atualizar o Chrome para 54.0.2840.90 (Linux), 54.0.2840.87 (Windows/Mac) ou 54.0.2840.85 (Android). Para distribuições que empacotam Chromium separadamente, como o RHEL 6 Supplementary, o Red Hat publicou a RHSA-2016:2672 atualizando o pacote chromium-browser para a versão 54.0.2840.90, com reinício do navegador necessário para aplicar a correção.
Não existe mitigação de configuração real para esse tipo de bug de motor JS — é uma falha na lógica do compilador, não em uma feature que possa ser desativada seletivamente. Desabilitar JavaScript globalmente eliminaria o vetor, mas o custo de usabilidade é inviável na prática e não é uma recomendação razoável fora de ambientes muito restritos (kiosks, terminais dedicados). Como essa CVE afeta qualquer produto baseado em Chromium na época (Chrome, e por extensão outros navegadores Chromium-based citados pela CISA), o controle efetivo é garantir atualização automática do navegador e eliminar qualquer instalação legada ou embarcada que ainda rode versões anteriores a novembro de 2016.
Cómo detectar
Não há assinatura pública conhecida ou log confiável para detectar tentativas de exploração dessa CVE especificamente — o relatório original do bug permanece restrito e as fontes consultadas não descrevem indicadores de rede ou de payload. Na prática, exploits de corrupção de memória em V8 geram, no processo renderer, crashes anômalos ou comportamento de JavaScript incomum (uso intensivo de manipulação de arrays/objetos com padrões de type confusion), sinais que só são detectáveis com instrumentação de baixo nível (sanitizers, EDR com hooks de exceção) e não por análise de log convencional.