Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-85046 — Preuve de concept et analyse technique pour CVE-2026-85046, une confusion de type V8 dans le tri en ligne de Array.prototype.sort, incluant la cause racine, le diff du correctif et la chaîne d'exploitation pour Chrome < 152.0.7977.82. | Kitploit
Outils/GitHubGitHub/atiilla/cve-2026-85046
Analyse des VulnérabilitésExploitationExploitation d'Applications WebAnalyse de BinairesArticles et RechercheApprentissage et Éducation
GitHubatiilla/cve-2026-85046

CVE-2026-85046

Preuve de concept et analyse technique pour CVE-2026-85046, une confusion de type V8 dans le tri en ligne de Array.prototype.sort, incluant la cause racine, le diff du correctif et la chaîne d'exploitation pour Chrome < 152.0.7977.82.

Voir le dépôt
il y a 7h 44mPas encore vérifié
Site web

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-85046

Confusion de type V8 dans le tri en ligne Array.prototype.sort (Maglev + Turbofan). 6e zero-day de Chrome en 2026.

ChampValeur
CVSS8,8 (Élevé)
CWECWE-843 (Confusion de type)
ComposantMoteur JavaScript V8 -- tri en ligne Maglev/Turbofan
AffectéChrome < 152.0.7977.82, tous les navigateurs basés sur Chromium
CorrigéChrome 152.0.7977.82 (2026-09-03)
Commit de correctione0562d87ad9c17042b581582c99237d798572e67
CISA KEVAjouté le 2026-09-04, échéance le 2026-09-18
Exploitation sauvageOui (confirmé par Google)
RapporteurSalvatore Gulizia (Serotav)

Cause racine

L'optimisation du tri en ligne accepte un retour polymorphique de type d'éléments (PACKED_SMI_ELEMENTS + PACKED_ELEMENTS). Lorsque le comparateur appelle arr.fill(0), V8 migre la carte du récepteur en arrière de PACKED_ELEMENTS vers PACKED_SMI_ELEMENTS. La vérification de carte post-tri réussit car PACKED_SMI_ELEMENTS figurait dans l'ensemble de retours d'origine. La réécriture copie des pointeurs d'objets dans un tableau dont la carte prétend ne contenir que des éléments SMI.

La correction ajoute une condition préalable exigeant que toutes les cartes de récepteurs dans le retour partagent le même elements_kind avant d'inliner le tri.

Fichiers

FichierDescription
patch-analysis.mdAnalyse complète du diff du correctif avec cause racine, mécanisme de déclenchement et évaluation des primitives d'exploitation
patch-analysis.jsonDonnées structurées : hachages de commits, CWE, versions affectées, primitives d'exploitation
v8-research.mdPlongée approfondie dans les types d'éléments V8, PoC antérieurs (CVE-2020-6418, CVE-2025-2135, CVE-2024-4947, etc.), architecture sandbox, techniques d'évasion
poc-minimal.jsDéclencheur minimal de confusion de type pour d8 (d8 --allow-natives-syntax poc-minimal.js)
poc.htmlChaîne d'exploitation complète : confusion de type, primitive addrof, heap spray, fakeobj via chevauchement de stockage de support, fuite d'informations
exploit-notes.mdAnalyse technique : chaîne étape par étape, schémas de disposition du tas, compression des pointeurs, impact sandbox, indicateurs de détection, remédiation

Démarrage rapide

Déclencheur minimal (d8)

root@kitploit:~
# Avec les helpers de débogage V8
d8 --allow-natives-syntax poc-minimal.js

# Sans (vérification heuristique via String())
d8 poc-minimal.js

PoC complet (navigateur)

Ouvrez poc.html dans Chrome < 152.0.7977.82. L'exploit s'exécute automatiquement et journalise chaque étape sur la page et dans la console développeur. Étapes :

  1. Entraînement JIT avec retour polymorphique de type d'éléments (2000 itérations)
  2. Déclenchement de la confusion de type via arr.fill(0) dans le comparateur de tri
  3. Primitive addrof -- divulgue les pointeurs de tas compressés sous forme d'entiers
  4. Heap spray pour chevauchement de stockage de support entre tableaux double/objet
  5. fakeobj via chevauchement -- forge des références d'objets à partir d'entiers contrôlés
  6. Fuite d'informations -- extrait les adresses de l'instance WebAssembly, de window, de document

Résumé de la chaîne d'exploitation

root@kitploit:~
Entraînement (2000 itérations)
  |
  v
Confusion de type : carte PACKED_ELEMENTS -> carte PACKED_SMI_ELEMENTS
                (le stockage de support contient toujours des pointeurs d'objets)
  |
  v
addrof : String(array_confus) divulgue les pointeurs sous forme d'entiers
  |
  v
fakeobj : le chevauchement double/objet écrit un pointeur contrôlé
  |
  v
Faux JSArray avec pointeur d'éléments contrôlé -> R/W arbitraire (intra-cage)
  |
  v
Exécution de code dans la sandbox V8 (nécessite une évasion de sandbox pour un RCE complet)

Détails techniques clés

  • La longueur du tableau doit être <= 16 (kMaxInlineSortLength)
  • ~1000-2000 itérations nécessaires pour l'optimisation Maglev/Turbofan
  • Le comparateur doit appeler arr.fill() avec des valeurs SMI pour la migration arrière de carte
  • Les tableaux PACKED_SMI et PACKED_ELEMENTS doivent tous deux être passés pendant l'entraînement
  • addrof divulgue des pointeurs compressés 32 bits (relatifs à la cage, pas l'adresse virtuelle complète 64 bits)
  • La sandbox de tas V8 limite l'exploitation à un R/W intra-cage sans seconde vulnérabilité

Références

  • Bug Chromium : crbug/542403045 (restreint)
  • Commit de correction : e0562d87
  • Commit d'introduction : 66a3f1e9
  • Analyse de Serotav : https://serotav.github.io/Writeups/v8/when-sorting-leads-to-confusion/
  • NVD : https://nvd.nist.gov/vuln/detail/CVE-2026-85046
Télécharger l’outil