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
CVE-2026-78938 — Ursachenanalyse und funktionierender Exploit für CVE-2026-78938, eine Typverwechslung in V8 TurboFan, die beliebiges Lesen/Schreiben innerhalb des komprimierten Heaps ermöglicht. Enthält Crash-PoC und zur Laufzeit adressierte Primitiven. | Kitploit
Tools/GitHubGitHub/eddinos2/cve-2026-78938
SchwachstellenanalyseExploitationWebsicherheitBinary-Exploitation
GitHubeddinos2/cve-2026-78938

CVE-2026-78938

Ursachenanalyse und funktionierender Exploit für CVE-2026-78938, eine Typverwechslung in V8 TurboFan, die beliebiges Lesen/Schreiben innerhalb des komprimierten Heaps ermöglicht. Enthält Crash-PoC und zur Laufzeit adressierte Primitiven.

Repository anzeigen
vor 1 TagNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-78938 — V8 TurboFan CheckMaps-Instanzmigration-Typverwechslung

Root-Cause-Analyse und Exploit für CVE-2026-78938, eine Typverwechslung in der TurboFan-Lastentfernungsoptimierung von V8, die in Chrome 152.0.7977.64 (V8 15.2.124.18) behoben wurde. Der Fehler wurde als in freier Wildbahn ausgenutzt gemeldet.

Der Exploit verwandelt den Fehler in ein Out-of-Bounds-Float64Array und von dort in addrof / fakeobj sowie beliebiges Lesen/Schreiben über den komprimierten V8-Heap. Alles nach dem initialen Schreibvorgang wird zur Laufzeit lokalisiert — es gibt keine fest codierten Heap-Offsets in der R/W-Phase.

  • Betroffen: Chrome 152.0.7977.54 (V8 15.2.124.13, Commit 8ec91943)
  • Behoben: Chrome 152.0.7977.64/.65 (V8 15.2.124.18, Commit 6aacaf62)
  • Fix-Commit: 50597b0bb48a — "[compiler] Invalidate tracked fields on CheckMaps with instance migration"

Getestet auf macOS arm64 gegen ein lokal gebautes d8 beider Versionen.

Inhalt

DateiWas es ist
pocs/crash.jsMinimaler Auslöser. SIGBUS auf der verwundbaren Version, sauberer Exit auf der gepatchten.
pocs/rw_final.jsVollständiger Exploit, Stufe 1: Auslöser + OOB-Array. Eingefroren — siehe „Reproduktion" unten.
pocs/logic_final.jsVollständiger Exploit, Stufe 2: addrof/fakeobj/beliebiges R\W, zur Laufzeit von Stufe 1 geladen.
WRITEUP.mdVollständige Root-Cause-Analyse und Exploit-Hinweise.

Reproduktion

Baue die beiden d8-Versionen (siehe WRITEUP.md für die genauen Commits und GN-Argumente), dann vom Repository-Root aus:

root@kitploit:~
# Crash-PoC: SIGBUS auf vuln, sauber auf patched
out/vuln/d8    --allow-natives-syntax --homomorphic-ic --max-valid-polymorphic-map-count=4 pocs/crash.js
out/patched/d8 --allow-natives-syntax --homomorphic-ic --max-valid-polymorphic-map-count=4 pocs/crash.js

# vollständiges R/W: funktioniert auf vuln, bricht sauber auf patched ab
out/vuln/d8 --allow-natives-syntax --homomorphic-ic --max-valid-polymorphic-map-count=4 pocs/rw_final.js

Erwartete Ausgabe auf der verwundbaren Version:

root@kitploit:~
[+] OOB Float64Array len=0x7f000004
[+] after write: victim2.z = 2.5
[+] fakeobj(hn|1) typeof=number
[+] ALL PRIMITIVES VERIFIED

Zwei Dinge sind wichtig:

  1. Die Flags sind erforderlich. --homomorphic-ic --max-valid-polymorphic-map-count=4 formen das polymorphe Map-Feedback, sodass der Migrationspfad im optimierten Code genommen wird. Ohne sie tut der Auslöser stillschweigend nichts.
  2. pocs/rw_final.js ist byte-eingefroren. Der einzelne korrumpierende Schreibvorgang landet bei einem heap-relativen Offset, der davon abhängt, wo das Opfer-Array allokiert wird, was wiederum von den exakten Bytes und dem Pfad des Skripts abhängt. Das Bearbeiten der Datei (oder deren Umbenennung) macht den eingebackenen Offset ungültig; WRITEUP.md dokumentiert, wie neu kalibriert wird. pocs/logic_final.js wird nach dem Auslösen des Triggers geladen, kann also frei bearbeitet werden.

Hinweise

  • Die demonstrierte Primitive ist beliebiges Lesen/Schreiben innerhalb der V8-Sandbox (des komprimierten Heaps). Für Codeausführung ist zusätzlich ein Sandbox-Exit erforderlich (z. B. durch Korrumpieren der RWX-Code-Region einer Wasm-Instanz), was außerhalb des Rahmens dieses Write-ups liegt.
  • Alle Adressen im Exploit werden zur Laufzeit ermittelt. Der einzige eingebackene Wert ist der einzelne Schreib-Offset in pocs/rw_final.js, aus den oben genannten Gründen.

Dieses Repository dient Bildungs- und Verteidigungsforschungszwecken. Der Fehler ist im aktuellen Chrome gepatcht; Details sind im V8-Quellbaum öffentlich.

Tool herunterladen