Analyse de la vulnérabilité Sentinel Value dans le moteur Chrome V8
La valeur sentinelle est une valeur spéciale dans les algorithmes, généralement utilisée comme condition d'arrêt pour les boucles ou la récursion. Il existe plusieurs valeurs sentinelles dans le moteur Chrome V8, dont la fuite dans l'environnement JavaScript pourrait entraîner une évasion du bac à sable. Cet article explorera comment contourner le mécanisme de protection HardenProtect de Chrome V8 en divulguant des objets Oddball non initialisés.
Valeur Sentinel dans V8
Dans le code source de V8, plusieurs objets natifs sont définis et sont disposés de manière adjacente en mémoire. Si ces objets sont fuités dans JavaScript, cela pourrait permettre l'exécution de n'importe quel code à l'intérieur du bac à sable. Des recherches antérieures ont montré que la fuite de l'objet TheHole pouvait réaliser cela, et l'objet Uninitialized Oddball discuté dans cet article présente également ce risque.
Nous pouvons valider Uninitialized Oddball dans JavaScript en modifiant les fonctions natives de V8. La méthode spécifique consiste à modifier le décalage relatif à l'isolate dans la fonction %TheHole() pour qu'elle retourne l'objet Uninitialized Oddball.
Contournement de la protection HardenType
L'utilisation d'objets Uninitialized Oddball peut contourner la protection HardenType de V8, permettant une lecture et une écriture relativement arbitraires. La clé réside dans le fait que le code JavaScript optimisé ne vérifie pas le type des éléments du tableau, mais calcule directement le décalage et lit la valeur selon la sémantique JavaScript, entraînant ainsi une confusion de type.
Dans l'architecture x86, en raison de l'absence de compression d'adresse, les lectures et écritures arbitraires sont relatives à l'ensemble du processus. Cela signifie que dans certains logiciels comme Skype, un attaquant peut exploiter cela pour lire et écrire dans des zones de mémoire spécifiques, complétant ainsi toute la chaîne d'exploitation de la vulnérabilité.
Impact de la sécurité
La divulgation de cette méthode d'exploitation a considérablement réduit la difficulté d'exploiter des vulnérabilités similaires. Les attaquants peuvent presque réaliser une exploitation complète sans recherche supplémentaire, ce qui constitue une menace pour de nombreux logiciels qui n'ont pas encore été corrigés.
De plus, il existe d'autres valeurs Sentinel dans V8 qui peuvent également entraîner des problèmes similaires. Cela nous rappelle que:
D'autres fuites de valeur Sentinel peuvent-elles également permettre une exécution de code à distance V8 facilement?
Devrait-on considérer ce type de problème comme une vulnérabilité de sécurité officielle ?
Faut-il considérer l'inclusion de diverses valeurs Sentinel en tant que variables dans le champ de test lors des tests de fuzz?
Quoi qu'il en soit, ce type de problème réduira considérablement le temps nécessaire aux attaquants pour exploiter pleinement, ce qui mérite une attention particulière de la part des chercheurs en sécurité et des développeurs.
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.
11 J'aime
Récompense
11
9
Reposter
Partager
Commentaire
0/400
NeverPresent
· Il y a 14h
C'est trop sévère pour utiliser comme condition de boucle.
Voir l'originalRépondre0
MemeEchoer
· Il y a 18h
Encore un maître des failles qui fait des siennes.
Voir l'originalRépondre0
GateUser-afe07a92
· 08-12 13:57
Oh merde, la v8 a de nouveau une vulnérabilité.
Voir l'originalRépondre0
CryptoCross-TalkClub
· 08-10 04:39
Cette vulnérabilité est aussi fictive que les niveaux de stop loss des grandes plateformes d'échange lorsqu'elles sont à terre.
Voir l'originalRépondre0
PoetryOnChain
· 08-10 02:07
Il y a encore une faille.
Voir l'originalRépondre0
FudVaccinator
· 08-10 02:06
Encore un trou V8, les gars, foncez!
Voir l'originalRépondre0
MelonField
· 08-10 01:58
La vulnérabilité est assez grave, Google est condamné cette fois.
Voir l'originalRépondre0
just_here_for_vibes
· 08-10 01:57
Ce bug est tout simplement explosif... c'est trop stylé.
Détails sur la vulnérabilité Sentinel Value du moteur Chrome V8 : fuite d'objets Oddball non initialisés et évasion du bac à sable
Analyse de la vulnérabilité Sentinel Value dans le moteur Chrome V8
La valeur sentinelle est une valeur spéciale dans les algorithmes, généralement utilisée comme condition d'arrêt pour les boucles ou la récursion. Il existe plusieurs valeurs sentinelles dans le moteur Chrome V8, dont la fuite dans l'environnement JavaScript pourrait entraîner une évasion du bac à sable. Cet article explorera comment contourner le mécanisme de protection HardenProtect de Chrome V8 en divulguant des objets Oddball non initialisés.
Valeur Sentinel dans V8
Dans le code source de V8, plusieurs objets natifs sont définis et sont disposés de manière adjacente en mémoire. Si ces objets sont fuités dans JavaScript, cela pourrait permettre l'exécution de n'importe quel code à l'intérieur du bac à sable. Des recherches antérieures ont montré que la fuite de l'objet TheHole pouvait réaliser cela, et l'objet Uninitialized Oddball discuté dans cet article présente également ce risque.
Nous pouvons valider Uninitialized Oddball dans JavaScript en modifiant les fonctions natives de V8. La méthode spécifique consiste à modifier le décalage relatif à l'isolate dans la fonction %TheHole() pour qu'elle retourne l'objet Uninitialized Oddball.
Contournement de la protection HardenType
L'utilisation d'objets Uninitialized Oddball peut contourner la protection HardenType de V8, permettant une lecture et une écriture relativement arbitraires. La clé réside dans le fait que le code JavaScript optimisé ne vérifie pas le type des éléments du tableau, mais calcule directement le décalage et lit la valeur selon la sémantique JavaScript, entraînant ainsi une confusion de type.
Dans l'architecture x86, en raison de l'absence de compression d'adresse, les lectures et écritures arbitraires sont relatives à l'ensemble du processus. Cela signifie que dans certains logiciels comme Skype, un attaquant peut exploiter cela pour lire et écrire dans des zones de mémoire spécifiques, complétant ainsi toute la chaîne d'exploitation de la vulnérabilité.
Impact de la sécurité
La divulgation de cette méthode d'exploitation a considérablement réduit la difficulté d'exploiter des vulnérabilités similaires. Les attaquants peuvent presque réaliser une exploitation complète sans recherche supplémentaire, ce qui constitue une menace pour de nombreux logiciels qui n'ont pas encore été corrigés.
De plus, il existe d'autres valeurs Sentinel dans V8 qui peuvent également entraîner des problèmes similaires. Cela nous rappelle que:
D'autres fuites de valeur Sentinel peuvent-elles également permettre une exécution de code à distance V8 facilement?
Devrait-on considérer ce type de problème comme une vulnérabilité de sécurité officielle ?
Faut-il considérer l'inclusion de diverses valeurs Sentinel en tant que variables dans le champ de test lors des tests de fuzz?
Quoi qu'il en soit, ce type de problème réduira considérablement le temps nécessaire aux attaquants pour exploiter pleinement, ce qui mérite une attention particulière de la part des chercheurs en sécurité et des développeurs.