Analyse des fuites de valeurs Sentinel du moteur Chrome V8 et des risques de sécurité associés

Explorer les risques de sécurité dus à la fuite de valeurs Sentinel dans le moteur Chrome V8

Introduction

La valeur sentinelle est une valeur spéciale dans les algorithmes, généralement utilisée comme condition de terminaison dans les algorithmes de boucle ou de récursion. Cette valeur spéciale est largement utilisée dans le code source de Chrome. Récemment, des chercheurs ont réussi à réaliser une exécution de code arbitraire dans le sandbox grâce à la fuite de l'objet TheHole, ce qui a conduit aux vulnérabilités CVE-2021-38003 et CVE-2022-1364. L'équipe de Google a rapidement corrigé ces deux vulnérabilités.

Cependant, en plus de l'objet TheHole, il existe d'autres objets natifs dans V8 qui ne devraient pas être divulgués à JavaScript. Cet article se concentrera sur l'objet Oddball non initialisé et présentera comment l'exploiter pour contourner le mécanisme HardenProtect de V8. Il convient de noter que cette méthode de contournement est toujours valable pour la dernière version de V8 et n'a pas encore été corrigée.

Valeur Sentinel dans V8

La plupart des objets natifs de V8 sont définis dans le fichier v8/src/roots/roots.h, ces objets sont disposés de manière adjacente en mémoire. Une fois que ces objets natifs, qui ne devraient pas être exposés à JavaScript, sont divulgués, cela peut entraîner l'exécution de n'importe quel code dans le sandbox.

Pour vérifier cela, nous pouvons modifier la fonction native de V8 pour divulguer l'Oddball Non Initialisé dans JavaScript. La méthode consiste à modifier le décalage relatif de la fonction %TheHole() par rapport à l'isolate, afin qu'elle renvoie l'Oddball Non Initialisé.

Révélation exclusive sur la façon de contourner Chrome v8 HardenProtect grâce à la fuite de Sentinel Value

Contourner la protection HardenType

L'utilisation d'objets Oddball non initialisés permet de réaliser des lectures et écritures relativement arbitraires. Dans le code JavaScript optimisé, la fonction read ne vérifie pas la valeur associée à obj.prop comme clé, mais calcule directement le décalage selon la sémantique JavaScript pour obtenir la valeur du tableau. Cela entraîne un mélange de types lors du calcul, permettant ainsi une lecture arbitraire.

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

Pour toute opération d'écriture, vous pouvez vous référer à la méthode de construction dans l'issue 1352549 pour l'analyse. La solution de correction suggérée consiste à ajouter une vérification de la carte du tableau lors du retour des éléments du tableau dans la fonction optimisée, afin d'éviter de calculer directement le décalage pour retourner les valeurs du tableau.

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

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

Révélation exclusive sur la façon de contourner la protection HardenProtect de Chrome v8 via la fuite de la valeur Sentinel

Alerte PatchGap

Après avoir analysé l'Issue1352549, nous avons découvert que certains logiciels pourraient avoir un problème de PatchGap. Il convient de noter qu'à ce jour, Skype n'a toujours pas corrigé cette vulnérabilité. Dans un environnement x86, la mise en œuvre de la lecture et de l'écriture arbitraires sera différente, car il n'y a pas de compression d'adresse, ce qui permet d'opérer directement par rapport à l'ensemble du processus.

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

Le problème de PatchGap ne concerne pas seulement l'Issue1352549, la publication de nouvelles méthodes de contournement a également considérablement réduit la difficulté d'exploitation des vulnérabilités telles que l'Issue1314616 et l'Issue1216437. Les hackers n'ont pratiquement aucun coût de recherche à engager pour réaliser une exploitation complète des vulnérabilités uninitialized_oddball qui avaient été précédemment divulguées.

Révélations exclusives sur le contournement de Chrome v8 HardenProtect via la fuite de Sentinel Value

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

Résumé

Cet article discute brièvement des méthodes pour réaliser des lectures arbitraires en exploitant des uninitialized_Oddball dans la valeur Sentinel. Il existe également de nombreuses autres valeurs Sentinel dans V8 qui pourraient entraîner des problèmes de sécurité similaires. Cela nous donne les enseignements suivants :

  1. D'autres fuites uninitialized_Oddball peuvent-elles également permettre une exécution de code à distance de V8 facilement ?

  2. Il existe toujours des débats sur la question de savoir si ce type de problème doit être considéré comme un problème de sécurité formel.

  3. Envisagez d'ajouter des valeurs Sentinel telles que %TheHole/uninitialized_Oddball en tant que variables dans le fuzzer, afin d'explorer d'autres primitives d'exploitation.

Quelles que soient les considérations formelles de sécurité concernant ce type de problème, elles réduisent considérablement le temps nécessaire aux hackers pour exploiter pleinement les vulnérabilités.

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

SENC-4.74%
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
  • 6
  • Reposter
  • Partager
Commentaire
0/400
FUD_Vaccinatedvip
· 07-26 03:20
Encore noir Google, ce trou est trop fréquent 8
Voir l'originalRépondre0
MetaverseLandlordvip
· 07-24 11:22
Oh putain, les failles des navigateurs des autres sont si avancées.
Voir l'originalRépondre0
SerNgmivip
· 07-23 05:34
V8 me rend fou...
Voir l'originalRépondre0
GateUser-a606bf0cvip
· 07-23 05:34
Hmm? Chrome fait encore des siennes?
Voir l'originalRépondre0
StablecoinAnxietyvip
· 07-23 05:15
La vulnérabilité de sécurité du navigateur est tellement excitante!
Voir l'originalRépondre0
PonziDetectorvip
· 07-23 05:11
Wow, cette vulnérabilité V8 est assez importante !
Voir l'originalRépondre0
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)