Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/atiilla/cve-2026-85046
SchwachstellenanalyseExploitationWebanwendungs-ExploitationBinäranalysePapers & ForschungLernen & Bildung
GitHubatiilla/cve-2026-85046

CVE-2026-85046

Proof-of-concept und technische Analyse für CVE-2026-85046, eine V8-Typverwechslung im Inline-`Array.prototype.sort`, einschließlich Root Cause, Patch-Diff und Exploitation-Kette für Chrome < 152.0.7977.82.

Repository anzeigen
vor 7h 44mNoch nicht geprüft
Webseite

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-85046

V8-Typverwechslung im Inline-Array.prototype.sort (Maglev + Turbofan). Chrome-6. Zero-Day des Jahres 2026.

FeldWert
CVSS8.8 (Hoch)
CWECWE-843 (Typverwechslung)
KomponenteV8-JavaScript-Engine -- Maglev/Turbofan-Inline-Sortierung
BetroffenChrome < 152.0.7977.82, alle Chromium-basierten Browser
BehobenChrome 152.0.7977.82 (2026-09-03)
Fix-Commite0562d87ad9c17042b581582c99237d798572e67
CISA KEVHinzugefügt 2026-09-04, Frist 2026-09-18
Ausnutzung in freier WildbahnJa (von Google bestätigt)
MelderSalvatore Gulizia (Serotav)

Grundursache

Die Inline-Sortieroptimierung akzeptiert polymorphes Element-Kind-Feedback (PACKED_SMI_ELEMENTS + PACKED_ELEMENTS). Wenn der Komparator arr.fill(0) aufruft, migriert V8 die Receiver-Map rückwärts von PACKED_ELEMENTS zu PACKED_SMI_ELEMENTS. Die Map-Prüfung nach der Sortierung besteht, da PACKED_SMI_ELEMENTS im ursprünglichen Feedback-Satz enthalten war. Das Zurückschreiben (Copy-back) schreibt Objektzeiger in ein Array, dessen Map nur SMI-Elemente beansprucht.

Der Fix fügt eine Vorbedingung hinzu, die verlangt, dass alle Receiver-Maps im Feedback dieselbe elements_kind aufweisen, bevor die Sortierung inline eingebettet wird.

Dateien

DateiBeschreibung
patch-analysis.mdVollständige Patch-Diff-Analyse mit Grundursache, Auslösemechanismus und Bewertung der Ausnutzungsprimitive
patch-analysis.jsonStrukturierte Daten: Commit-Hashes, CWE, betroffene Versionen, Ausnutzungsprimitive
v8-research.mdV8-Element-Kind-Tiefenanalyse, frühere PoCs (CVE-2020-6418, CVE-2025-2135, CVE-2024-4947 usw.), Sandbox-Architektur, Escape-Techniken
poc-minimal.jsMinimaler Typverwechslungs-Auslöser für d8 (d8 --allow-natives-syntax poc-minimal.js)
poc.htmlVollständige Ausnutzungskette: Typverwechslung, addrof-Primitive, Heap-Spray, fakeobj über Backing-Store-Überlappung, Informationsleck
exploit-notes.mdTechnische Dokumentation: Schritt-für-Schritt-Kette, Heap-Layout-Diagramme, Zeigerkomprimierung, Sandbox-Auswirkungen, Erkennungsindikatoren, Abhilfemaßnahmen

Schnellstart

Minimaler Auslöser (d8)

root@kitploit:~
# Mit V8-Debug-Hilfsfunktionen
d8 --allow-natives-syntax poc-minimal.js

# Ohne (heuristische Verifizierung über String())
d8 poc-minimal.js

Vollständiger PoC (Browser)

Öffnen Sie poc.html in Chrome < 152.0.7977.82. Der Exploit läuft automatisch und protokolliert jede Stufe auf der Seite und in der Entwicklerkonsole. Stufen:

  1. JIT-Training mit polymorphem Element-Kind-Feedback (2000 Iterationen)
  2. Typverwechslungs-Auslöser über arr.fill(0) im Sortier-Komparator
  3. addrof-Primitive -- leakt komprimierte Heap-Zeiger als Ganzzahlen
  4. Heap-Spray für Double-/Objekt-Array-Backing-Store-Überlappung
  5. fakeobj über Überlappung -- erzeugt Objektreferenzen aus kontrollierten Ganzzahlen
  6. Informationsleck -- gibt Adressen der WebAssembly-Instanz, von window und document aus

Zusammenfassung der Ausnutzungskette

root@kitploit:~
Training (2000 Iter.)
  |
  v
Typverwechslung: PACKED_ELEMENTS-Map -> PACKED_SMI_ELEMENTS-Map
                (Backing Store enthält weiterhin Objektzeiger)
  |
  v
addrof: String(confused_array) leakt Zeiger als Ganzzahlen
  |
  v
fakeobj: Double-/Objekt-Array-Überlappung schreibt kontrollierten Zeiger
  |
  v
Fake-JSArray mit kontrolliertem Elements-Zeiger -> beliebiges R/W (intra-cage)
  |
  v
Codeausführung innerhalb der V8-Sandbox (erfordert Sandbox-Escape für vollständiges RCE)

Wichtige technische Details

  • Array-Länge muss <= 16 sein (kMaxInlineSortLength)
  • ~1000-2000 Iterationen für die Maglev/Turbofan-Optimierung erforderlich
  • Der Komparator muss arr.fill() mit SMI-Werten aufrufen, um die rückwärtige Map-Migration auszulösen
  • Sowohl PACKED_SMI- als auch PACKED_ELEMENTS-Arrays müssen während des Trainings übergeben werden
  • addrof leakt 32-Bit-komprimierte Zeiger (cage-relativ, nicht volle 64-Bit-VA)
  • Die V8-Heap-Sandbox begrenzt die Ausnutzung ohne eine zweite Schwachstelle auf intra-cage R/W

Referenzen

  • Chromium-Bug: crbug/542403045 (eingeschränkt)
  • Fix-Commit: e0562d87
  • Einführender Commit: 66a3f1e9
  • Serotav-Writeup: https://serotav.github.io/Writeups/v8/when-sorting-leads-to-confusion/
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-85046
Tool herunterladen