Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-85046 — Prova de conceito e análise técnica para CVE-2026-85046, uma confusão de tipos no V8 em `Array.prototype.sort` inline, incluindo causa raiz, diff do patch e cadeia de exploração para Chrome < 152.0.7977.82. | Kitploit
Ferramentas/GitHubGitHub/atiilla/cve-2026-85046
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebAnálise de BináriosPapers e PesquisaAprendizado e Educação
GitHubatiilla/cve-2026-85046

CVE-2026-85046

Prova de conceito e análise técnica para CVE-2026-85046, uma confusão de tipos no V8 em `Array.prototype.sort` inline, incluindo causa raiz, diff do patch e cadeia de exploração para Chrome < 152.0.7977.82.

Ver Repositório
há 7h 44mAinda não revisado
Site

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-85046

Confusão de tipo no V8 em Array.prototype.sort inline (Maglev + Turbofan). Sexto zero-day do Chrome em 2026.

CampoValor
CVSS8.8 (Alto)
CWECWE-843 (Confusão de Tipo)
ComponenteV8 JavaScript Engine -- sort inline Maglev/Turbofan
AfetadosChrome < 152.0.7977.82, todos os navegadores baseados em Chromium
CorrigidoChrome 152.0.7977.82 (2026-09-03)
Commit da correçãoe0562d87ad9c17042b581582c99237d798572e67
CISA KEVAdicionado em 2026-09-04, prazo 2026-09-18
Exploração ativaSim (confirmado pelo Google)
RelatorSalvatore Gulizia (Serotav)

Causa Raiz

A otimização de sort inline aceita feedback polimórfico de element-kind (PACKED_SMI_ELEMENTS + PACKED_ELEMENTS). Quando o comparador chama arr.fill(0), o V8 migra o mapa do receptor para trás, de PACKED_ELEMENTS para PACKED_SMI_ELEMENTS. A verificação de mapa pós-sort passa porque PACKED_SMI_ELEMENTS estava no conjunto original de feedback. A escrita de retorno grava ponteiros de objeto em um array cujo mapa declara elementos somente SMI.

A correção adiciona uma pré-condição que exige que todos os mapas de receptor no feedback compartilhem o mesmo elements_kind antes de inlinear o sort.

Arquivos

ArquivoDescrição
patch-analysis.mdAnálise completa do diff do patch com causa raiz, mecanismo de gatilho e avaliação de primitivas de exploração
patch-analysis.jsonDados estruturados: hashes de commit, CWE, versões afetadas, primitivas de exploração
v8-research.mdMergulho profundo em element kinds do V8, PoCs anteriores (CVE-2020-6418, CVE-2025-2135, CVE-2024-4947, etc.), arquitetura de sandbox, técnicas de escape
poc-minimal.jsGatilho mínimo de confusão de tipo para d8 (d8 --allow-natives-syntax poc-minimal.js)
poc.htmlCadeia de exploração completa: confusão de tipo, primitiva addrof, heap spray, fakeobj via sobreposição de backing store, vazamento de informação
exploit-notes.mdDocumentação técnica: cadeia passo a passo, diagramas de layout de heap, compressão de ponteiros, impacto da sandbox, indicadores de detecção, remediação

Início Rápido

Gatilho mínimo (d8)

root@kitploit:~
# Com helpers de debug do V8
d8 --allow-natives-syntax poc-minimal.js

# Sem (verificação heurística via String())
d8 poc-minimal.js

PoC completo (navegador)

Abra poc.html no Chrome < 152.0.7977.82. O exploit é executado automaticamente e registra cada etapa na página e no console do desenvolvedor. Etapas:

  1. Treinamento JIT com feedback polimórfico de element-kind (2000 iterações)
  2. Gatilho de confusão de tipo via arr.fill(0) no comparador do sort
  3. Primitiva addrof -- vaza ponteiros de heap comprimidos como inteiros
  4. Heap spray para sobreposição de backing store de arrays double/object
  5. fakeobj via sobreposição -- forja referências de objeto a partir de inteiros controlados
  6. Vazamento de informação -- despeja endereços da instância WebAssembly, window, document

Resumo da Cadeia de Exploração

root@kitploit:~
Treinamento (2000 iter)
  |
  v
Confusão de tipo: mapa PACKED_ELEMENTS -> mapa PACKED_SMI_ELEMENTS
                (backing store ainda contém ponteiros de objeto)
  |
  v
addrof: String(confused_array) vaza ponteiros como inteiros
  |
  v
fakeobj: sobreposição de arrays double/object grava ponteiro controlado
  |
  v
JSArray falso com ponteiro de elementos controlado -> R/W arbitrário (intra-cage)
  |
  v
Execução de código dentro da sandbox do V8 (requer escape da sandbox para RCE completo)

Principais Detalhes Técnicos

  • O comprimento do array deve ser <= 16 (kMaxInlineSortLength)
  • ~1000-2000 iterações necessárias para otimização Maglev/Turbofan
  • O comparador deve chamar arr.fill() com valores SMI para migração reversa do mapa
  • Tanto arrays PACKED_SMI quanto PACKED_ELEMENTS devem ser passados durante o treinamento
  • addrof vaza ponteiros comprimidos de 32 bits (relativos ao cage, não VA completo de 64 bits)
  • A sandbox de heap do V8 limita a exploração a R/W intra-cage sem uma segunda vulnerabilidade

Referências

  • Bug do Chromium: crbug/542403045 (restrito)
  • Commit da correção: e0562d87
  • Commit introdutor: 66a3f1e9
  • Writeup do Serotav: https://serotav.github.io/Writeups/v8/when-sorting-leads-to-confusion/
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-85046
Baixar ferramenta