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
POC-CVE-2025-6554 — Preuve de concept d'exploit pour CVE-2025-6554, une vulnérabilité du moteur JavaScript V8 permettant un accès non autorisé à des valeurs 'Hole' non initialisées via le chaînage optionnel, entraînant une confusion de type et une manipulation de mémoire. | Kitploit
Outils/GitHubGitHub/ghostn4444/poc-cve-2025-6554
Analyse des VulnérabilitésExploitationExploitation d'Applications WebArticles et RechercheApprentissage et ÉducationExploitation de Binaires
GitHubghostn4444/poc-cve-2025-6554

POC-CVE-2025-6554

Preuve de concept d'exploit pour CVE-2025-6554, une vulnérabilité du moteur JavaScript V8 permettant un accès non autorisé à des valeurs 'Hole' non initialisées via le chaînage optionnel, entraînant une confusion de type et une manipulation de mémoire.

Voir le dépôt
112il y a 1 anPas 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-2025-6554

CVE-2025-6554 est une vulnérabilité dans l’interpréteur V8 (JavaScript Engine) de Chrome : un contrôle inadéquat du « Hole » dans des variables non intentionnelles au sein d’expressions avec chaînage optionnel. Le POC (CVE-2025-6554-POC.JS) explore une faille du mécanisme de vérification du « Hole » dans les variables avant leur utilisation, permettant la lecture de valeurs non initialisées – un comportement normalement bloqué par une référence.

root@kitploit:~
function leak_hole() {
    let x;
    delete x?.[y]?.a;
    return y;
    let y;
}
function pwn() {
    let hole = leak_hole();
    %DebugPrint(hole);
}
pwn();

Explication Technique

1. Structure du Code Vulnérable

let x; et let y; déclarent des variables dans la portée locale. La ligne delete x?.[y]?. utilise le chaînage optionnel pour accéder à une propriété imbriquée en toute sécurité. Problème : la variable Y est utilisée avant d’être déclarée, ce qui devrait déclencher une erreur de référence, mais dans la version pré-corrigée de V8, cela échouait silencieusement, permettant de capturer la valeur spéciale appelée « The Hole » (sentinelle pour les variables en TDZ — Zone Morte Temporelle). La valeur de retour () dans le code ne devrait pas être accessible car Y est toujours en TDZ. Mais la faille le permet.

return y

2. Comportement avant le correctif

Le mécanisme qui empêche l’accès aux variables en TDZ est ThrowReferenceErrorIfHole. Avant le correctif, ce mécanisme n’était invoqué qu’une seule fois lors de delete x?.[y]?. V8 marquait alors en interne que la variable Y avait déjà été vérifiée comme « n’étant pas un hole », mais cette vérification échappait à la portée contrôlée et n’était donc pas réévaluée lors du return y.

3. Ce qui a été corrigé

Le correctif ajoute un autre appel obligatoire à ThrowReferenceErrorIfHole sur return y, garantissant que toute tentative d’accès à Y avant sa déclaration déclenche correctement une erreur. Cette vérification était assurée par la portée OilCheckETSCOPE, qui a été incluse dans tous les appels à OptionalChainNullLabelScope.

Flux d’attaque

root@kitploit:~
delete x?.[y]?.  →  Tentative d’accès à Y (non initialisé)  →  Échec de la vérification du « Hole »
→  Y s’échappe comme valeur  →  return y;  →  Capture de la valeur « Hole »  →  DebugPrint révèle

L’attaquant, en capturant ce « Hole », peut déduire l’état interne du moteur V8, facilitant des attaques telles que :

  • Confusion de type
  • Manipulation de la pile
  • Contournement de la vérification de portée
Télécharger l’outil