Valeur sentinelle dans Chrome V8 : risques de sécurité
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. Dans le code source de Chrome, il existe plusieurs valeurs sentinelles, dont certaines, si elles sont divulguées dans l'environnement JavaScript, pourraient entraîner des problèmes de sécurité.
Des recherches antérieures ont montré que la fuite de l'objet TheHole peut permettre l'exécution de n'importe quel code dans un sandbox. L'équipe de Google a corrigé cela. Cependant, en réalité, il existe d'autres objets natifs dans V8 qui ne devraient pas être divulgués à JS, comme l'objet Oddball non initialisé.
La fuite d'objets Oddball non initialisés peut entraîner une évasion de sandbox. Ce problème est apparu pour la première fois dans l'Issue1352549 et n'a pas encore été corrigé. Cette méthode présente une certaine généralité et a été observée dans plusieurs vulnérabilités.
Les 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 s'échappent dans l'environnement JavaScript, il est possible de réaliser une fuite de bac à sable.
Pour vérifier ce problème, vous pouvez modifier la fonction native de V8 pour divulguer Uninitialized Oddball dans JavaScript. Plus précisément, vous pouvez modifier l'implémentation de la fonction %TheHole().
L'utilisation d'un objet Oddball non initialisé peut contourner la protection HardenType. En construisant un code JavaScript spécifique, il est possible d'effectuer des lectures et écritures en mémoire relativement arbitraires. Cela est dû au fait que le code optimisé ne vérifie pas pleinement les propriétés des objets.
Pour les suggestions de correction, il convient d'ajouter une vérification de la map du tableau lors du retour des éléments du tableau par la fonction optimisée, afin d'éviter le calcul direct des valeurs de retour d'offset.
Cette question nous rappelle également de prêter attention à PatchGap, c'est-à-dire que certains logiciels peuvent utiliser une version de V8 qui n'a pas corrigé cette vulnérabilité. Par exemple, Skype n'a pas encore corrigé ce problème. Dans l'architecture x86, en raison de l'absence de compression d'adresse, il est possible de réaliser des lectures et écritures arbitraires dans la portée des processus.
En général, il existe plusieurs valeurs Sentinel dans V8 qui pourraient présenter des risques de sécurité similaires. Il est conseillé d'étudier davantage l'impact d'autres fuites de Uninitialized Oddball et de considérer l'inclusion de ces objets dans le champ des tests de fuzzing pour découvrir d'autres méthodes d'exploitation potentielles. Quoi qu'il en soit, ces problèmes pourraient considérablement réduire le cycle d'exploitation des vulnérabilités par les attaquants.
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.
6 J'aime
Récompense
6
5
Partager
Commentaire
0/400
DuckFluff
· 07-13 00:41
Oh là là, ce bug a l'air génial !~
Voir l'originalRépondre0
ShitcoinConnoisseur
· 07-11 14:18
Et ça, tu ne le répares pas tout de suite ? Que fait v8 ?
Voir l'originalRépondre0
WhaleMistaker
· 07-11 02:45
Une grande vulnérabilité de Chrome est encore arrivée.
Chrome V8 Sentinel Value vulnérabilité : la fuite d'un objet Oddball non initialisé peut entraîner une évasion de bac à sable.
Valeur sentinelle dans Chrome V8 : risques de sécurité
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. Dans le code source de Chrome, il existe plusieurs valeurs sentinelles, dont certaines, si elles sont divulguées dans l'environnement JavaScript, pourraient entraîner des problèmes de sécurité.
Des recherches antérieures ont montré que la fuite de l'objet TheHole peut permettre l'exécution de n'importe quel code dans un sandbox. L'équipe de Google a corrigé cela. Cependant, en réalité, il existe d'autres objets natifs dans V8 qui ne devraient pas être divulgués à JS, comme l'objet Oddball non initialisé.
La fuite d'objets Oddball non initialisés peut entraîner une évasion de sandbox. Ce problème est apparu pour la première fois dans l'Issue1352549 et n'a pas encore été corrigé. Cette méthode présente une certaine généralité et a été observée dans plusieurs vulnérabilités.
Les 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 s'échappent dans l'environnement JavaScript, il est possible de réaliser une fuite de bac à sable.
Pour vérifier ce problème, vous pouvez modifier la fonction native de V8 pour divulguer Uninitialized Oddball dans JavaScript. Plus précisément, vous pouvez modifier l'implémentation de la fonction %TheHole().
L'utilisation d'un objet Oddball non initialisé peut contourner la protection HardenType. En construisant un code JavaScript spécifique, il est possible d'effectuer des lectures et écritures en mémoire relativement arbitraires. Cela est dû au fait que le code optimisé ne vérifie pas pleinement les propriétés des objets.
Pour les suggestions de correction, il convient d'ajouter une vérification de la map du tableau lors du retour des éléments du tableau par la fonction optimisée, afin d'éviter le calcul direct des valeurs de retour d'offset.
Cette question nous rappelle également de prêter attention à PatchGap, c'est-à-dire que certains logiciels peuvent utiliser une version de V8 qui n'a pas corrigé cette vulnérabilité. Par exemple, Skype n'a pas encore corrigé ce problème. Dans l'architecture x86, en raison de l'absence de compression d'adresse, il est possible de réaliser des lectures et écritures arbitraires dans la portée des processus.
En général, il existe plusieurs valeurs Sentinel dans V8 qui pourraient présenter des risques de sécurité similaires. Il est conseillé d'étudier davantage l'impact d'autres fuites de Uninitialized Oddball et de considérer l'inclusion de ces objets dans le champ des tests de fuzzing pour découvrir d'autres méthodes d'exploitation potentielles. Quoi qu'il en soit, ces problèmes pourraient considérablement réduire le cycle d'exploitation des vulnérabilités par les attaquants.