Fuite de valeur sentinelle et contournement de HardenProtect de Chrome V8
Dans le code source de Chrome, il existe de nombreuses valeurs Sentinel, qui sont généralement utilisées dans les algorithmes comme conditions d'arrêt pour les boucles ou la récursivité. Des recherches récentes montrent que la fuite de certaines valeurs Sentinel peut entraîner l'exécution de code arbitraire dans le sandbox de Chrome.
En plus de l'objet TheHole connu, il existe d'autres objets natifs dans V8 qui ne devraient pas être divulgués dans l'environnement JavaScript. Cet article se concentre sur l'objet Uninitialized Oddball, dont cette méthode d'esquive peut encore être appliquée à la dernière version de V8 et n'a pas encore été corrigée.
Il convient de noter que cette méthode présente une large applicabilité. Parmi les vulnérabilités signalées, la fuite d'Uninitialized Oddball peut entraîner une exécution de code à distance. Cela souligne la nécessité d'un audit complet des logiciels susceptibles d'être affectés par PatchGap.
La plupart des objets natifs dans V8 sont définis dans le fichier v8/src/roots/roots.h, et ils sont disposés de manière adjacente en mémoire. Une fois que ces objets sont exposés de manière incorrecte à JavaScript, cela peut permettre l'exécution de code arbitraire dans le sandbox.
Pour valider cette méthode, nous pouvons modifier la fonction native de V8 pour qu'elle retourne un objet Uninitialized Oddball. De cette manière, nous sommes capables d'effectuer des lectures de mémoire relativement arbitraires dans la dernière version de V8.
Le cœur de cette méthode d'esquive réside dans le fait que la fonction JavaScript optimisée n'effectue pas de vérification suffisante des informations de type du tableau lors de l'accès aux éléments du tableau, mais calcule plutôt directement le décalage pour obtenir la valeur. Cela entraîne une confusion de type, permettant ainsi une lecture arbitraire.
La solution de réparation suggérée consiste à ajouter une vérification du tableau map lorsque la fonction optimisée retourne des éléments du tableau, afin d'éviter de retourner les valeurs du tableau par un calcul d'offset direct.
De plus, nous devons également nous concentrer sur les problèmes de PatchGap qui peuvent exister dans la chaîne d'approvisionnement logicielle. Certains logiciels largement utilisés peuvent encore ne pas avoir corrigé ce type de vulnérabilité, ce qui offre aux attaquants un point d'entrée potentiel.
En général, il existe plusieurs valeurs Sentinel dans V8, dont les fuites pourraient entraîner des problèmes de sécurité. Les futures directions de recherche pourraient inclure : explorer l'impact des fuites d'autres Oddball non initialisés, évaluer la faisabilité d'introduire des valeurs Sentinel comme variables dans les tests de fuzz, et examiner de manière plus complète les problèmes de sécurité connexes. Que ces problèmes soient formellement classés comme des vulnérabilités de sécurité ou non, ils pourraient considérablement réduire le temps nécessaire aux attaquants pour réaliser une exploitation complète.
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.
9 J'aime
Récompense
9
5
Reposter
Partager
Commentaire
0/400
LiquidatedDreams
· 08-08 20:23
Encore une vague de bugs... pourquoi Chrome en mode dégradé ne se répare-t-il pas ?
Voir l'originalRépondre0
GasWaster
· 08-08 20:22
Il y a tellement de failles dans la boîte, le clown a fait fam.
Voir l'originalRépondre0
GasOptimizer
· 08-08 20:20
Les vulnérabilités récursives représentent 89,4 % des incidents de sécurité.
Voir l'originalRépondre0
FallingLeaf
· 08-08 20:19
Il y a une si grande vulnérabilité, le navigateur n'est pas sécurisé.
La fuite de la valeur Sentinel du moteur Chrome V8 entraîne un risque d'évasion du bac à sable.
Fuite de valeur sentinelle et contournement de HardenProtect de Chrome V8
Dans le code source de Chrome, il existe de nombreuses valeurs Sentinel, qui sont généralement utilisées dans les algorithmes comme conditions d'arrêt pour les boucles ou la récursivité. Des recherches récentes montrent que la fuite de certaines valeurs Sentinel peut entraîner l'exécution de code arbitraire dans le sandbox de Chrome.
En plus de l'objet TheHole connu, il existe d'autres objets natifs dans V8 qui ne devraient pas être divulgués dans l'environnement JavaScript. Cet article se concentre sur l'objet Uninitialized Oddball, dont cette méthode d'esquive peut encore être appliquée à la dernière version de V8 et n'a pas encore été corrigée.
Il convient de noter que cette méthode présente une large applicabilité. Parmi les vulnérabilités signalées, la fuite d'Uninitialized Oddball peut entraîner une exécution de code à distance. Cela souligne la nécessité d'un audit complet des logiciels susceptibles d'être affectés par PatchGap.
La plupart des objets natifs dans V8 sont définis dans le fichier v8/src/roots/roots.h, et ils sont disposés de manière adjacente en mémoire. Une fois que ces objets sont exposés de manière incorrecte à JavaScript, cela peut permettre l'exécution de code arbitraire dans le sandbox.
Pour valider cette méthode, nous pouvons modifier la fonction native de V8 pour qu'elle retourne un objet Uninitialized Oddball. De cette manière, nous sommes capables d'effectuer des lectures de mémoire relativement arbitraires dans la dernière version de V8.
Le cœur de cette méthode d'esquive réside dans le fait que la fonction JavaScript optimisée n'effectue pas de vérification suffisante des informations de type du tableau lors de l'accès aux éléments du tableau, mais calcule plutôt directement le décalage pour obtenir la valeur. Cela entraîne une confusion de type, permettant ainsi une lecture arbitraire.
La solution de réparation suggérée consiste à ajouter une vérification du tableau map lorsque la fonction optimisée retourne des éléments du tableau, afin d'éviter de retourner les valeurs du tableau par un calcul d'offset direct.
De plus, nous devons également nous concentrer sur les problèmes de PatchGap qui peuvent exister dans la chaîne d'approvisionnement logicielle. Certains logiciels largement utilisés peuvent encore ne pas avoir corrigé ce type de vulnérabilité, ce qui offre aux attaquants un point d'entrée potentiel.
En général, il existe plusieurs valeurs Sentinel dans V8, dont les fuites pourraient entraîner des problèmes de sécurité. Les futures directions de recherche pourraient inclure : explorer l'impact des fuites d'autres Oddball non initialisés, évaluer la faisabilité d'introduire des valeurs Sentinel comme variables dans les tests de fuzz, et examiner de manière plus complète les problèmes de sécurité connexes. Que ces problèmes soient formellement classés comme des vulnérabilités de sécurité ou non, ils pourraient considérablement réduire le temps nécessaire aux attaquants pour réaliser une exploitation complète.