Analyse approfondie des risques de sécurité des valeurs Sentinel du moteur Chrome V8

robot
Création du résumé en cours

Exploration approfondie de l'impact de sécurité de la valeur Sentinel dans le moteur Chrome V8

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 plusieurs valeurs sentinelles dans le code source de Chrome. Des recherches antérieures ont montré qu'il était possible d'exécuter du code arbitraire dans le bac à sable de Chrome en compromettant l'objet TheHole. L'équipe de Google a ensuite corrigé les vulnérabilités associées.

Cependant, il existe d'autres objets natifs dans V8 qui ne devraient pas être exposés à JavaScript. Cet article discutera des objets Uninitialized Oddball, cette méthode d'évasion a été mentionnée pour la première fois dans l'Issue1352549. Il convient de noter que cette méthode est toujours disponible dans la dernière version de V8 et n'a pas encore été corrigée.

Cette méthode a une certaine universalité :

  1. Issue1216437(CVE-2021-30551) a donné pour la première fois un poc pour la fuite d'un oddball interne non initialisé.

  2. Issue1314616(CVE-2022-1486) a également directement divulgué UninitializedOddball.

  3. L'impact de l'émission 1352549( NoCVE ) mérite d'être pris en compte.

Ces cas montrent qu'il est nécessaire de réévaluer les logiciels qui pourraient être affectés par PatchGap. Actuellement, Skype n'a toujours pas corrigé cette vulnérabilité.

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 natifs, qui ne devraient pas être divulgués, sont divulgués dans JavaScript, il peut être possible d'exécuter n'importe quel code dans le bac à sable.

Pour valider cette méthode, nous pouvons modifier la fonction native de V8 pour divulguer Uninitialized Oddball dans JavaScript. Plus précisément, nous pouvons modifier l'offset relatif à l'isolate dans la fonction %TheHole() pour qu'elle retourne Uninitialized Oddball.

Révélations exclusives sur la façon de contourner Chrome v8 HardenProtect en révélant la valeur Sentinel

Cette méthode permet de contourner la protection HardenType et d'atteindre une lecture/écriture relativement arbitraire. L'analyse du code JavaScript optimisé révèle qu'il n'y a pas de validation de la valeur dont la clé est obj.prop lors de la vérification de obj.prop, ce qui conduit à un calcul d'offset selon la sémantique JavaScript et à l'obtention de la valeur du tableau, entraînant ainsi un mélange de types.

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

En raison de la priorité plus élevée et plus primitive de uninitialized_oddball dans la mémoire V8, il est plus facile de le falsifier que l'objet TheHole. Après que les atténuations liées à TheHole aient été corrigées, cette méthode est devenue le choix privilégié pour contourner.

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

Il est conseillé d'ajouter une vérification du tableau map lors du retour des éléments du tableau dans la fonction optimisée, afin d'éviter de calculer directement les valeurs de retour par décalage.

Il convient de noter que Skype n'a pas encore corrigé cette vulnérabilité. Sur les systèmes x86, en raison de l'absence de compression d'adresses, la lecture et l'écriture arbitraires se font par rapport à l'ensemble du processus. Bien que Skype ait activé l'ASLR, en raison de la taille importante des fichiers, les hackers n'ont qu'à lire et écrire à des adresses fixes, ce qui augmente considérablement les chances de lire et d'écrire dans le contenu des fichiers Skype. Cela réduit considérablement la difficulté de réaliser une chaîne d'exploitation complète.

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

Cette fois, PatchGap n'implique pas seulement l'Issue1352549, la publication d'une nouvelle méthode 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 presque pas besoin de recherches supplémentaires pour exploiter pleinement les vulnérabilités précédentes liées à la fuite de uninitialized_oddball.

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

Il existe également d'autres valeurs Sentinel dans V8, qui peuvent également présenter des vulnérabilités similaires. Il est recommandé de considérer l'ajout de valeurs Sentinel telles que %TheHole/uninitialized_Oddball en tant que variables dans les tests de fuzzing, afin de découvrir d'autres primitives d'exploitation potentielles.

Révélation exclusive sur la manière de contourner Chrome v8 HardenProtect en divulguant Sentinel Value

Que ces problèmes soient ou non officiellement considérés comme des problèmes de sécurité, ils réduisent considérablement le délai dans lequel les pirates peuvent entièrement exploiter les failles. Nous devons continuer à surveiller et à étudier ce domaine pour améliorer la sécurité des logiciels tels que Chrome.

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

Dévoilement exclusif de la manière de contourner le HardenProtect de Chrome v8 en révélant la valeur Sentinel

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

SENC10.58%
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
  • 3
  • Reposter
  • Partager
Commentaire
0/400
GateUser-00be86fcvip
· Il y a 13h
Oh, v8 a encore révélé une petite vulnérabilité.
Voir l'originalRépondre0
Blockblindvip
· Il y a 13h
Ce bug a duré si longtemps sans être corrigé, c'est impressionnant.
Voir l'originalRépondre0
ImpermanentSagevip
· Il y a 13h
Mince, c'est encore une faille d'exécution de code.
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)