Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
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
119il 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.

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 (return y) dans le code ne devrait pas être accessible car Y est toujours en TDZ. Mais la faille le permet.

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

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