Analyse et défense des vulnérabilités de fuite de valeur Sentinel du moteur Chrome V8

robot
Création du résumé en cours

Analyse technique du contournement de Chrome V8 HardenProtect par la valeur Sentinel

La valeur sentinelle est une valeur spéciale dans les algorithmes, souvent utilisée comme condition d'arrêt dans les algorithmes de boucle ou de récursion. Il existe de nombreuses valeurs sentinelles dans le code source de Chrome. Des recherches récentes ont montré qu'il était possible d'exécuter du code arbitraire dans le sandbox en divulguant l'objet TheHole, ce qui permettrait d'exploiter les vulnérabilités CVE-2021-38003 et CVE-2022-1364. L'équipe de Google a ensuite mis à jour ces deux vulnérabilités trouvées sur le terrain.

En plus de l'objet TheHole, il existe d'autres objets natifs dans V8 qui ne doivent pas être divulgués à JavaScript. Cet article traite de l'objet Uninitialized Oddball, dont cette méthode d'évasion peut encore être utilisée dans la dernière version de V8.

La plupart des objets natifs de V8 sont définis dans le fichier v8/src/roots/roots.h, ces objets étant disposés de manière adjacente en mémoire. Une fois qu'un objet natif qui ne devrait pas être divulgué est exposé à JavaScript, il pourrait permettre l'exécution de code arbitraire dans le sandbox.

Exclusif : Dévoilement de la manière de contourner Chrome v8 HardenProtect en divulguant la valeur Sentinel

Pour valider cette méthode, il est possible de modifier la fonction native de V8 pour faire fuiter l'Uninitialized Oddball dans JavaScript. Plus précisément, on peut modifier le décalage relatif de la fonction %TheHole() par rapport à l'isolate, afin qu'elle renvoie l'Uninitialized Oddball.

Révélation exclusive sur la manière de contourner Chrome v8 HardenProtect en exploitant la valeur de sentinelle

L'utilisation d'Uninitialized Oddball permet d'effectuer des lectures et écritures relativement arbitraires. La fonction de lecture JavaScript optimisée calculera directement le décalage selon la sémantique JavaScript, déterminant ainsi la valeur du tableau, ce qui entraîne une confusion de type et permet une lecture arbitraire.

Révélation exclusive sur la façon de contourner Chrome v8 HardenProtect en divulguant la valeur Sentinel

Révélation exclusive sur le contournement de Chrome v8 HardenProtect via la fuite de Sentinel Value

Révélation exclusive sur comment contourner Chrome v8 HardenProtect en divulguant la valeur Sentinel

La solution de réparation suggérée consiste à ajouter une vérification du tableau map lors du retour des éléments du tableau par la fonction optimisée, afin d'éviter de calculer directement le décalage pour retourner les valeurs du tableau.

Il convient de noter que cette méthode s'applique non seulement à Chrome, mais que d'autres logiciels utilisant le moteur V8 peuvent également être affectés. Par exemple, Skype n'a pas encore corrigé cette vulnérabilité. Sous x86, en raison de l'absence de compression d'adresse, la lecture/écriture arbitraire est directement relative à l'ensemble du processus.

Révélation exclusive sur le contournement de Chrome v8 HardenProtect grâce à la fuite de la valeur Sentinel

Révélation exclusive sur le contournement de Chrome v8 HardenProtect via la fuite de Sentinel Value

Révélation exclusive sur la façon de contourner Chrome v8 HardenProtect en utilisant la valeur Sentinel divulguée

Révélation exclusive sur le contournement de Chrome v8 HardenProtect via la fuite de Sentinel Value

Dans l'ensemble, la fuite de uninitialized_Oddball dans la valeur Sentinel permet de réaliser des lectures arbitraires. Il existe d'autres valeurs Sentinel dans V8 qui pourraient entraîner des problèmes similaires. Il est recommandé d'ajouter ces valeurs Sentinel en tant que variables dans le fuzzer, afin de découvrir davantage de primitives d'exploitation potentielles. Que cela soit officiellement considéré comme un problème de sécurité ou non, ce type de problème réduit considérablement le temps nécessaire aux hackers pour réaliser une exploitation complète.

SENC-4.61%
Voir l'original
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.
  • Récompense
  • 4
  • Partager
Commentaire
0/400
TommyTeachervip
· 07-20 16:35
C'est effectivement un peu dangereux, hein.
Voir l'originalRépondre0
BrokeBeansvip
· 07-20 16:22
Penser à creuser des trous toute la journée, n'est-ce pas plus agréable de faire des exercices avec les mains ?
Voir l'originalRépondre0
GateUser-ccc36bc5vip
· 07-20 16:13
La protection v8 est aussi mauvaise que ça ?
Voir l'originalRépondre0
StablecoinGuardianvip
· 07-20 16:09
Oh oh, le V8 a encore des problèmes de sécurité.
Voir l'originalRépondre0
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)