Explorer comment contourner le mécanisme HardenProtect de Chrome v8 en exploitant la fuite de la valeur Sentinel
Introduction
La valeur sentinelle est une valeur spéciale dans les algorithmes, souvent utilisée comme condition d'arrêt pour les algorithmes de boucle ou de récursion. Ce type de valeur spéciale est largement utilisé dans le code source de Chrome. Des recherches récentes ont montré que la fuite de l'objet TheHole peut permettre l'exploitation de certaines vulnérabilités d'exécution de code arbitraire dans le sandbox de Chrome. Cet article explorera un autre objet connexe - Uninitialized Oddball, et comment il peut être utilisé pour contourner les mécanismes de sécurité de Chrome.
Il est à noter que le dernier moteur V8 en version actuelle présente toujours ce problème. Cette méthode a une certaine universalité et peut affecter la difficulté d'exploitation de plusieurs vulnérabilités historiques.
Valeur sentinel dans V8
De nombreux objets natifs sont définis dans le code source V8, et ils sont disposés de manière adjacente en mémoire. Si ces objets sont exposés de manière incorrecte à l'environnement JavaScript, cela peut entraîner une fuite de sandbox. La fuite de l'objet TheHole mentionnée précédemment en est un exemple typique.
Nous pouvons vérifier cela en modifiant les fonctions natives de V8. Par exemple, en modifiant le décalage de la fonction %TheHole() pour qu'elle retourne un objet Oddball non initialisé.
Contourner la protection HardenType
L'utilisation d'objets Oddball non initialisés permet de réaliser des lectures de mémoire relativement arbitraires. La clé est que le code JavaScript optimisé ne vérifie pas correctement les propriétés des objets, calculant directement les décalages selon les sémantiques de JavaScript et accédant aux éléments du tableau, ce qui entraîne un mélange de types.
La solution de contournement suggérée consiste à ajouter une vérification du tableau map lors du retour des éléments du tableau par la fonction d'optimisation, afin d'éviter de calculer directement le décalage.
Alerte de risque PatchGap
L'analyse a révélé que certains logiciels pourraient avoir des problèmes de PatchGap qui n'ont pas encore été corrigés. Prenons l'exemple de Skype, dont les fichiers sont assez volumineux et chargés directement en mémoire, les attaquants pourraient exploiter cela par la lecture et l'écriture à des adresses fixes.
La divulgation de cette nouvelle méthode de contournement pourrait réduire la difficulté d'exploitation de certaines vulnérabilités historiques. Il est conseillé aux parties concernées de réévaluer les logiciels et les vulnérabilités affectés.
Résumé
Cet article discute brièvement de la possibilité de réaliser une lecture arbitraire par la fuite de valeurs Sentinel telles que Uninitialized Oddball. D'autres valeurs Sentinel existent également dans V8, qui pourraient également présenter des vulnérabilités similaires. Cela nous rappelle que :
D'autres fuites d'Oddball non initialisés peuvent entraîner une évasion de la sandbox V8
La localisation de sécurité de ce type de problème reste floue.
Il peut être envisagé d'ajouter une valeur Sentinel en tant que variable aux tests de fuzzer.
Quoi qu'il en soit, ce type de problème pourrait considérablement réduire le cycle d'exploitation complet des attaquants, ce qui mérite une attention particulière.
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
La vulnérabilité de fuite de Sentinel Value dans le moteur Chrome V8 peut permettre une échappée du bac à sable.
Explorer comment contourner le mécanisme HardenProtect de Chrome v8 en exploitant la fuite de la valeur Sentinel
Introduction
La valeur sentinelle est une valeur spéciale dans les algorithmes, souvent utilisée comme condition d'arrêt pour les algorithmes de boucle ou de récursion. Ce type de valeur spéciale est largement utilisé dans le code source de Chrome. Des recherches récentes ont montré que la fuite de l'objet TheHole peut permettre l'exploitation de certaines vulnérabilités d'exécution de code arbitraire dans le sandbox de Chrome. Cet article explorera un autre objet connexe - Uninitialized Oddball, et comment il peut être utilisé pour contourner les mécanismes de sécurité de Chrome.
Il est à noter que le dernier moteur V8 en version actuelle présente toujours ce problème. Cette méthode a une certaine universalité et peut affecter la difficulté d'exploitation de plusieurs vulnérabilités historiques.
Valeur sentinel dans V8
De nombreux objets natifs sont définis dans le code source V8, et ils sont disposés de manière adjacente en mémoire. Si ces objets sont exposés de manière incorrecte à l'environnement JavaScript, cela peut entraîner une fuite de sandbox. La fuite de l'objet TheHole mentionnée précédemment en est un exemple typique.
Nous pouvons vérifier cela en modifiant les fonctions natives de V8. Par exemple, en modifiant le décalage de la fonction %TheHole() pour qu'elle retourne un objet Oddball non initialisé.
Contourner la protection HardenType
L'utilisation d'objets Oddball non initialisés permet de réaliser des lectures de mémoire relativement arbitraires. La clé est que le code JavaScript optimisé ne vérifie pas correctement les propriétés des objets, calculant directement les décalages selon les sémantiques de JavaScript et accédant aux éléments du tableau, ce qui entraîne un mélange de types.
La solution de contournement suggérée consiste à ajouter une vérification du tableau map lors du retour des éléments du tableau par la fonction d'optimisation, afin d'éviter de calculer directement le décalage.
Alerte de risque PatchGap
L'analyse a révélé que certains logiciels pourraient avoir des problèmes de PatchGap qui n'ont pas encore été corrigés. Prenons l'exemple de Skype, dont les fichiers sont assez volumineux et chargés directement en mémoire, les attaquants pourraient exploiter cela par la lecture et l'écriture à des adresses fixes.
La divulgation de cette nouvelle méthode de contournement pourrait réduire la difficulté d'exploitation de certaines vulnérabilités historiques. Il est conseillé aux parties concernées de réévaluer les logiciels et les vulnérabilités affectés.
Résumé
Cet article discute brièvement de la possibilité de réaliser une lecture arbitraire par la fuite de valeurs Sentinel telles que Uninitialized Oddball. D'autres valeurs Sentinel existent également dans V8, qui pourraient également présenter des vulnérabilités similaires. Cela nous rappelle que :
Quoi qu'il en soit, ce type de problème pourrait considérablement réduire le cycle d'exploitation complet des attaquants, ce qui mérite une attention particulière.