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-78938 — Analyse des causes profondes et exploit fonctionnel pour CVE-2026-78938, une confusion de types V8 TurboFan conduisant à une lecture/écriture arbitraire dans le tas compressé. Inclut un PoC de crash et des primitives adressées au moment de l'exécution. | Kitploit
Outils/GitHubGitHub/eddinos2/cve-2026-78938
Analyse des VulnérabilitésExploitationSécurité WebExploitation de Binaires
GitHubeddinos2/cve-2026-78938

CVE-2026-78938

Analyse des causes profondes et exploit fonctionnel pour CVE-2026-78938, une confusion de types V8 TurboFan conduisant à une lecture/écriture arbitraire dans le tas compressé. Inclut un PoC de crash et des primitives adressées au moment de l'exécution.

Voir le dépôt
il y a 1 jourPas encore vérifié

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-78938 — Confusion de type CheckMaps avec migration d'instance dans TurboFan (V8)

Analyse de cause racine et exploit pour CVE-2026-78938, une confusion de type dans l'élimination de charges de TurboFan de V8, corrigée dans Chrome 152.0.7977.64 (V8 15.2.124.18). Le bug a été signalé comme exploité dans la nature.

L'exploit transforme le bug en un Float64Array hors limites, puis en addrof / fakeobj et en lecture/écriture arbitraire sur le tas compressé de V8. Tout ce qui suit l'écriture initiale est localisé à l'exécution — il n'y a aucun décalage de tas codé en dur dans l'étape L/E.

  • Affecté : Chrome 152.0.7977.54 (V8 15.2.124.13, commit 8ec91943)
  • Corrigé : Chrome 152.0.7977.64/.65 (V8 15.2.124.18, commit 6aacaf62)
  • Commit de correction : 50597b0bb48a — "[compiler] Invalidate tracked fields on CheckMaps with instance migration"

Testé sur macOS arm64 avec un d8 compilé localement pour les deux versions.

Contenu

fichierdescription
pocs/crash.jsDéclencheur minimal. SIGBUS sur la build vulnérable, sortie propre sur la build corrigée.
pocs/rw_final.jsExploit complet, étape 1 : déclencheur + tableau OOB. Figé — voir « Reproduction » ci-dessous.
pocs/logic_final.jsExploit complet, étape 2 : addrof/fakeobj/L\E arbitraire, chargé à l'exécution par l'étape 1.
WRITEUP.mdAnalyse complète de la cause racine et notes d'exploitation.

Reproduction

Compilez les deux versions de d8 (voir WRITEUP.md pour les commits exacts et les arguments GN), puis depuis la racine du dépôt :

root@kitploit:~
# PoC de crash : SIGBUS sur vuln, sortie propre sur 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

# L/E complète : fonctionne sur vuln, abandon propre sur patched
out/vuln/d8 --allow-natives-syntax --homomorphic-ic --max-valid-polymorphic-map-count=4 pocs/rw_final.js

Sortie attendue sur la build vulnérable :

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

Deux points importants :

  1. Les flags sont requis. --homomorphic-ic --max-valid-polymorphic-map-count=4 façonnent le retour polymorphique des maps afin que le chemin de migration soit emprunté dans le code optimisé. Sans eux, le déclencheur ne fait silencieusement rien.
  2. pocs/rw_final.js est figé octet par octet. La seule écriture corruptrice atterrit à un décalage relatif au tas qui dépend de l'endroit où le tableau victime est alloué, ce qui dépend à son tour des octets exacts et du chemin du script. Modifier le fichier (ou le renommer) invalide le décalage intégré ; WRITEUP.md documente comment le ré-étalonner. pocs/logic_final.js est chargé après que le déclencheur se soit produit, il peut donc être modifié librement.

Notes

  • La primitive démontrée est une lecture/écriture arbitraire à l'intérieur du bac à sable V8 (le tas compressé). Obtenir une exécution de code nécessite en plus une sortie du bac à sable (par ex. corrompre la région de code RWX d'une instance Wasm), ce qui sort du cadre de cette analyse.
  • Toutes les adresses de l'exploit sont découvertes à l'exécution. La seule valeur intégrée est le décalage d'écriture unique dans pocs/rw_final.js, pour les raisons évoquées ci-dessus.

Ce dépôt est destiné à des fins de recherche pédagogique et défensive. Le bug est corrigé dans Chrome actuel ; les détails sont publics dans l'arborescence source de V8.

Télécharger l’outil