flawopen.com/Incidents/bluemoon-chrome-v8-windows-alpc-september-2026
BlueMoon: três falhas atravessaram as barreiras de isolamento do Chrome e do Windows
A Proofpoint relatou campanhas direcionadas do BlueMoon que encadearam CVE-2026-85046 (confusão de tipos no V8), CVE-2026-87491 (escape do sandbox do V8) e CVE-2026-85880 (LPE no kernel do Windows). Google e Microsoft confirmaram exploração antes de suas correções; atualize os navegadores Chromium e o Windows separadamente.[1], [2], [3], [4]
Imagine um classificador que confirma que todas as caixas contêm livros, mas deixa um visitante trocar o conteúdo antes de separá-las pelas etiquetas antigas. Essa falha abre a área trancada de triagem; outra abre sua grade e uma terceira adultera os crachás do prédio. Cada fechadura precisa de reparo próprio.[1]
Conceitos Centrais e Termos
V8 / type confusion- O V8 executa JavaScript.
CVE-2026-85046envolveu hipóteses de otimização de Array.prototype.sort invalidadas quandofill()alterou o tipo dos elementos.[1], [2]
Mapeamentos de frameworks
- Referência CWE para a fraqueza descrita neste guia: CWE-122 CWE-787 CWE-843
- CISA KEV — adicionado em 2026-09-04 — CVE-2026-85046
Etapas da cadeia BlueMoon e decisões de correção
| Etapa / CVE / limite | O que as fontes confirmam | Ação defensiva |
|---|---|---|
Confusão de tipos no JIT do V8 — CVE-2026-85046 | A Proofpoint descreve mutação do comparador de Array.prototype.sort por fill(), invalidando uma suposição sobre o tipo dos elementos. O Google informou exploração em campo. | Instale Chrome/Chromium 152.0.7977.82/.83 (Windows/Mac) ou .82 (Linux), ou versão posterior; reinicie o navegador. A versão de 3 de setembro do Google contém a correção. |
Escape do sandbox do V8 — CVE-2026-87491 | A Proofpoint relata corrupção de metadados WebAssembly que cruza o sandbox de memória do V8, distinto do sandbox do processo de renderização. O Google informou exploração em campo. | Instale Chrome/Chromium 153.0.8010.36/.37 (Windows/Mac) ou .36 (Linux), ou versão posterior; reinicie o navegador. A versão de 8 de setembro do Google contém a correção. |
LPE no kernel do Windows — CVE-2026-85880 | A Proofpoint descreve um caminho ALPC/WNF até SeDebugPrivilege e lista as versões antigas do Windows visadas pelo kit. A Microsoft confirma exploração antes das atualizações de 8 de setembro. Essa lista não representa todas as versões afetadas. | Instale as atualizações de segurança atuais e suportadas do Windows, incluindo a de 8 de setembro de 2026 ou posterior; consulte o MSRC para o pacote específico do sistema e conclua a reinicialização necessária. Corrija o Windows separadamente do Chrome. |
Linha do Tempo do Incidente
A Proofpoint observou atividade BlueMoon pela primeira vez.[1]
O Chrome Stable corrigiu CVE-2026-85046 em 152.0.7977.82/.83 no Windows e Mac e .82 no Linux.[2]
Fluxo de Ataque Passo a Paso
Entrega observada
A Proofpoint observou campanhas direcionadas de spearphishing que distribuíam um link para o kit de exploração. As etapas no navegador exigiam que a pessoa abrisse o link em um navegador Chromium vulnerável.[1]
Confusão de tipos no V8 — CVE-2026-85046
A Proofpoint descreve um caminho otimizado de Array.prototype.sort cuja suposição de tipo podia ser invalidada quando o comparador alterava o array com fill(). A confusão de tipos resultante foi a vulnerabilidade inicial no renderizador; o Google informou que havia exploração em campo.[1], [2]
LPE no kernel do Windows — CVE-2026-85880
A Proofpoint relata um caminho no kernel via ALPC/WNF usado para habilitar SeDebugPrivilege no renderizador em versões antigas selecionadas do Windows. Separadamente, a Microsoft confirmou exploração antes das atualizações de segurança de 8 de setembro de 2026.[1], [4]
Saída do processo de renderização
Com as etapas do navegador e um alvo Windows compatível, a cadeia relatada podia sair do renderizador pelo LPE do Windows e alcançar o processo pai do navegador. O exemplo Python abaixo modela apenas a lição sobre suposições obsoletas; não é a cadeia de exploração.[1], [4]
Código-Fonte: Vulnerável vs. Seguro
Exemplo seguro em Python de hipótese invalidada, não é código V8, exploit nem correção do fabricante. Um callback benigno pode trocar inteiros por texto após a verificação inicial. A correção valida uma cópia limitada depois do callback e não chama outros callbacks ao consumi-la. No caso vulnerável, Python gera exceção com texto; isso não simula corrupção de memória nativa. Use somente callbacks confiáveis e limitados nesta execução síncrona.
def numeric_total(values, callback):
if type(values) is not list or len(values) > 1024:
raise ValueError("Invalid batch")
if any(type(x) is not int for x in values):
raise ValueError("Expected integers")
callback(values)
# O callback pode ter invalidado a suposição sobre o tipo.
return sum(values)
def numeric_total(values, callback):
if type(values) is not list or len(values) > 1024:
raise ValueError("Invalid batch")
callback(values)
if len(values) > 1024:
raise ValueError("Invalid batch")
snapshot = tuple(values)
if any(type(x) is not int or abs(x) > 1_000_000
for x in snapshot):
raise ValueError("Expected bounded integers")
# Consuma o snapshot validado sem outro callback.
return sum(snapshot)
Lista de Verificação de Segurança para Engenharia
- ✓Inventarie versões do navegador e do Windows separadamente; instale atualizações oficiais compatíveis e confirme reinício do navegador e do sistema.[2], [3], [4], [5]
- ✓Inclua testes de mutação pelo callback: alteração do tipo e lote excessivo devem ser rejeitados antes do consumo otimizado; números válidos devem somar corretamente.[1]
- ✓Revise caminhos otimizados com execução de código controlável entre validação e uso. Revalide as condições ou consuma uma cópia imutável validada.[1]
- ✓Acompanhe cada CVE separadamente. O Chrome classificou
CVE-2026-85046como Alto eCVE-2026-87491como Médio; a Microsoft classificouCVE-2026-85880como Alto (CVSS 7.8,CWE-122). Defesas de plataforma não substituem os patches.[2], [3], [4], [5]