Explorer les risques de sécurité liés à la fuite de la valeur Sentinel dans le moteur Chrome V8
La valeur Sentinel est une valeur utilisée comme un marqueur spécial dans les algorithmes, généralement comme condition d'arrêt dans les boucles ou les récursions. Dans le code source de l'engin Chrome V8, il existe plusieurs valeurs Sentinel, dont certaines ne doivent pas être divulguées dans l'environnement JavaScript. Cet article discutera des méthodes permettant de contourner le mécanisme HardenProtect de Chrome V8 en divulguant des objets Uninitialized Oddball.
Valeur Sentinel dans V8
Le fichier roots.h du code source V8 définit un grand nombre d'objets natifs, qui sont disposés de manière adjacente en mémoire. Une fois que ces objets sont divulgués dans JavaScript, cela peut entraîner une évasion de la sandbox.
Nous pouvons vérifier cela en modifiant les fonctions natives de V8. Par exemple, en modifiant le décalage de la fonction %TheHole() pour qu'elle renvoie un objet Oddball non initialisé plutôt qu'un objet TheHole.
Contourner la protection HardenType
L'utilisation d'objets Oddball non initialisés permet d'effectuer des lectures de mémoire relativement arbitraires. La clé réside dans la fonction de lecture JavaScript optimisée, qui ne vérifie que si l'attribut prop de l'objet est correct, mais ne vérifie pas la valeur correspondant à obj.prop. Cela entraîne une confusion de type lors du calcul, permettant ainsi une lecture arbitraire.
L'analyse du code assembleur optimisé montre que, lorsqu'un uninitialized_oddball est passé, le programme calcule directement le décalage et lit les données, sans effectuer de vérification de type. Cette méthode est plus facile à construire et à exploiter par rapport à l'objet TheHole.
La solution de contournement 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 renvoyer les valeurs du tableau par calcul d'offset.
Avertissement de sécurité PatchGap
En plus de prêter attention aux vulnérabilités historiques connues, nous devons également tenir compte des problèmes que les fabricants ont discrètement corrigés dans les composants de base. Après analyse, il a été constaté que le logiciel Skype n'avait toujours pas corrigé cette vulnérabilité. Sur la plateforme x86, en raison de l'absence de compression d'adresses, la portée de lecture et d'écriture arbitraire est plus grande, pouvant presque lire et écrire tout l'espace de processus.
Le patch Gap concerne non seulement l'Issue 1352549, mais également des vulnérabilités similaires telles que l'Issue 1314616 et l'Issue 1216437. Une fois que la nouvelle méthode d'esquive a été rendue publique, la difficulté d'exploitation de ces vulnérabilités a considérablement diminué, permettant aux attaquants de réaliser une chaîne d'exploitation complète sans nécessiter de recherches supplémentaires.
Résumé
Cet article explore brièvement les méthodes permettant de lire arbitrairement via la fuite d'Uninitialized Oddball. Il existe également plusieurs autres valeurs Sentinel dans V8, qui pourraient également entraîner des problèmes similaires. Cela nous rappelle:
D'autres fuites uninitialized_Oddball peuvent également entraîner une évasion du bac à sable V8.
Il existe encore des débats sur la question de savoir si de tels problèmes doivent être considérés comme des vulnérabilités de sécurité officielles.
Envisagez d'ajouter la valeur Sentinel en tant que variable dans les tests de flou pour découvrir de nouvelles méthodes d'exploitation.
Quoi qu'il en soit, ce type de problème réduira considérablement le temps nécessaire aux attaquants pour réaliser une exploitation complète, ce qui mérite une attention particulière.
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.
12 J'aime
Récompense
12
4
Partager
Commentaire
0/400
MoonBoi42
· Il y a 14h
J'ai un peu peur, il y a trop de failles.
Voir l'originalRépondre0
SleepyArbCat
· 08-02 05:40
Le chat qui est si fatigué qu'il ne peut que coder...zZz
Voir l'originalRépondre0
ChainDetective
· 08-02 05:38
Putain, vulnérabilité du moteur v8, c'est bon.
Voir l'originalRépondre0
LadderToolGuy
· 08-02 05:36
Étonné, encore en train de jouer avec le décryptage.
Analyse des risques de sécurité et d'exploitation liés à la fuite de la valeur Sentinel du moteur Chrome V8
Explorer les risques de sécurité liés à la fuite de la valeur Sentinel dans le moteur Chrome V8
La valeur Sentinel est une valeur utilisée comme un marqueur spécial dans les algorithmes, généralement comme condition d'arrêt dans les boucles ou les récursions. Dans le code source de l'engin Chrome V8, il existe plusieurs valeurs Sentinel, dont certaines ne doivent pas être divulguées dans l'environnement JavaScript. Cet article discutera des méthodes permettant de contourner le mécanisme HardenProtect de Chrome V8 en divulguant des objets Uninitialized Oddball.
Valeur Sentinel dans V8
Le fichier roots.h du code source V8 définit un grand nombre d'objets natifs, qui sont disposés de manière adjacente en mémoire. Une fois que ces objets sont divulgués dans JavaScript, cela peut entraîner une évasion de la sandbox.
Nous pouvons vérifier cela en modifiant les fonctions natives de V8. Par exemple, en modifiant le décalage de la fonction %TheHole() pour qu'elle renvoie un objet Oddball non initialisé plutôt qu'un objet TheHole.
Contourner la protection HardenType
L'utilisation d'objets Oddball non initialisés permet d'effectuer des lectures de mémoire relativement arbitraires. La clé réside dans la fonction de lecture JavaScript optimisée, qui ne vérifie que si l'attribut prop de l'objet est correct, mais ne vérifie pas la valeur correspondant à obj.prop. Cela entraîne une confusion de type lors du calcul, permettant ainsi une lecture arbitraire.
L'analyse du code assembleur optimisé montre que, lorsqu'un uninitialized_oddball est passé, le programme calcule directement le décalage et lit les données, sans effectuer de vérification de type. Cette méthode est plus facile à construire et à exploiter par rapport à l'objet TheHole.
La solution de contournement 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 renvoyer les valeurs du tableau par calcul d'offset.
Avertissement de sécurité PatchGap
En plus de prêter attention aux vulnérabilités historiques connues, nous devons également tenir compte des problèmes que les fabricants ont discrètement corrigés dans les composants de base. Après analyse, il a été constaté que le logiciel Skype n'avait toujours pas corrigé cette vulnérabilité. Sur la plateforme x86, en raison de l'absence de compression d'adresses, la portée de lecture et d'écriture arbitraire est plus grande, pouvant presque lire et écrire tout l'espace de processus.
Le patch Gap concerne non seulement l'Issue 1352549, mais également des vulnérabilités similaires telles que l'Issue 1314616 et l'Issue 1216437. Une fois que la nouvelle méthode d'esquive a été rendue publique, la difficulté d'exploitation de ces vulnérabilités a considérablement diminué, permettant aux attaquants de réaliser une chaîne d'exploitation complète sans nécessiter de recherches supplémentaires.
Résumé
Cet article explore brièvement les méthodes permettant de lire arbitrairement via la fuite d'Uninitialized Oddball. Il existe également plusieurs autres valeurs Sentinel dans V8, qui pourraient également entraîner des problèmes similaires. Cela nous rappelle:
D'autres fuites uninitialized_Oddball peuvent également entraîner une évasion du bac à sable V8.
Il existe encore des débats sur la question de savoir si de tels problèmes doivent être considérés comme des vulnérabilités de sécurité officielles.
Envisagez d'ajouter la valeur Sentinel en tant que variable dans les tests de flou pour découvrir de nouvelles méthodes d'exploitation.
Quoi qu'il en soit, ce type de problème réduira considérablement le temps nécessaire aux attaquants pour réaliser une exploitation complète, ce qui mérite une attention particulière.