Discuter des risques de sécurité de la valeur Sentinel dans le moteur Chrome V8
La valeur sentinel 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 sentinel dans le code source de Chrome. Des recherches récentes ont montré que la fuite d'objets sentinel spécifiques pourrait entraîner l'exécution de code arbitraire dans le sandbox de Chrome.
Cet article discutera d'un nouvel objet de valeur Sentinel : Uninitialized Oddball. Cette méthode d'exploitation est apparue pour la première fois dans un rapport de vulnérabilité, avec un code complet fourni par des chercheurs en sécurité. Il est important de noter que cette méthode est toujours utilisable dans la dernière version de V8 et n'a pas encore été corrigée.
Cette méthode présente une grande polyvalence :
Dans une certaine vulnérabilité CVE, le poc initial était une fuite d'un oddball interne non initialisé.
Dans un autre rapport de vulnérabilité CVE, les chercheurs ont directement divulgué UninitializedOddball. Bien que la chaîne d'exploitation n'ait pas été complète à l'époque, cela a déjà révélé des risques de sécurité.
Un rapport de vulnérabilité récent a fourni la méthode d'exploitation complète.
Ces cas illustrent la nature universelle et la gravité du problème. À ce jour, un certain logiciel de communication n'a pas encore corrigé cette vulnérabilité.
Application de la valeur sentinelle dans V8
Dans le code source de V8, un grand nombre d'objets natifs sont définis et sont disposés de manière adjacente en mémoire. Une fois que des objets natifs qui ne devraient pas être divulgués sont exposés à JavaScript, il est possible de réaliser l'exécution de n'importe quel code dans le bac à sable.
Pour vérifier l'efficacité de cette méthode dans le dernier V8, nous pouvons modifier les fonctions natives de V8 pour révéler Uninitialized Oddball dans JavaScript.
Contourner la protection HardenType
Nous pouvons construire du code qui, lorsque certaines fonctions retournent UninitializedOddball, permet une lecture arbitraire. L'analyse du code assembleur optimisé montre que la fonction ne vérifie que si les propriétés de l'objet sont correctes, mais ne vérifie pas les valeurs correspondantes des propriétés, calculant directement le décalage selon la sémantique JavaScript pour accéder aux éléments du tableau, ce qui entraîne une confusion de types et permet une lecture arbitraire.
De même, toute écriture arbitraire peut également être construite par une méthode similaire. Il est recommandé d'ajouter une vérification du tableau map lors du retour des éléments du tableau dans la fonction d'optimisation, afin d'éviter de calculer directement les valeurs de retour d'offset.
Alerte sur les risques de sécurité
L'analyse indique qu'un certain logiciel de communication n'a pas encore corrigé cette vulnérabilité. Sur un système x86, en raison de l'absence de compression d'adresse, il est possible de lire et d'écrire arbitrairement directement par rapport à l'ensemble du processus. Bien que l'ASLR soit activé, en raison de la taille importante du fichier, il y a encore une grande probabilité de lire et d'écrire des contenus critiques. En combinant des méthodes telles que l'analyse PE, il est possible de réaliser une chaîne d'exploitation complète en peu de temps.
Cette fois, la vulnérabilité de sécurité ne concerne pas seulement un seul défaut, mais a également considérablement réduit la difficulté d'exploitation de certaines vulnérabilités similaires précédemment. Les hackers n'ont presque pas besoin de faire des recherches supplémentaires pour réaliser une exploitation complète, y compris toutes les vulnérabilités similaires rapportées auparavant.
Résumé
Cet article discute brièvement des méthodes de lecture arbitraire via la fuite d'Uninitialized Oddball. Il existe de nombreuses autres valeurs Sentinel dans V8, qui pourraient présenter des vulnérabilités de sécurité similaires. Cela nous donne quelques idées :
D'autres fuites de valeur Sentinel pourraient-elles également conduire à une évasion du sandbox V8 ?
Ces problèmes devraient-ils être considérés comme des vulnérabilités de sécurité formelles ?
Est-il nécessaire d'inclure des variables liées à la valeur Sentinel dans les tests de fuzz pour découvrir davantage de problèmes potentiels ?
Quoi qu'il en soit, ce type de problème peut considérablement réduire le délai d'exploitation complète par les hackers, ce qui mérite une attention particulière.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
8 J'aime
Récompense
8
4
Partager
Commentaire
0/400
ArbitrageBot
· 07-11 10:52
Comment Google a-t-il fait ça ? Il y a même une faille.
Voir l'originalRépondre0
SelfSovereignSteve
· 07-10 20:07
Où est la protection du navigateur ?
Voir l'originalRépondre0
StablecoinArbitrageur
· 07-10 19:58
hmm encore une exploitation avec 99,8 % de chances d'être corrigée avant toute opportunité d'arbitrage significative...
Voir l'originalRépondre0
DefiPlaybook
· 07-10 19:45
Le navigateur a aussi fait un Airdrop ? Peut-on en profiter ?
Vulnérabilité de fuite de valeur Sentinel du moteur V8 : Analyse d'une nouvelle méthode d'évasion du sandbox Chrome
Discuter des risques de sécurité de la valeur Sentinel dans le moteur Chrome V8
La valeur sentinel 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 sentinel dans le code source de Chrome. Des recherches récentes ont montré que la fuite d'objets sentinel spécifiques pourrait entraîner l'exécution de code arbitraire dans le sandbox de Chrome.
Cet article discutera d'un nouvel objet de valeur Sentinel : Uninitialized Oddball. Cette méthode d'exploitation est apparue pour la première fois dans un rapport de vulnérabilité, avec un code complet fourni par des chercheurs en sécurité. Il est important de noter que cette méthode est toujours utilisable dans la dernière version de V8 et n'a pas encore été corrigée.
Cette méthode présente une grande polyvalence :
Dans une certaine vulnérabilité CVE, le poc initial était une fuite d'un oddball interne non initialisé.
Dans un autre rapport de vulnérabilité CVE, les chercheurs ont directement divulgué UninitializedOddball. Bien que la chaîne d'exploitation n'ait pas été complète à l'époque, cela a déjà révélé des risques de sécurité.
Un rapport de vulnérabilité récent a fourni la méthode d'exploitation complète.
Ces cas illustrent la nature universelle et la gravité du problème. À ce jour, un certain logiciel de communication n'a pas encore corrigé cette vulnérabilité.
Application de la valeur sentinelle dans V8
Dans le code source de V8, un grand nombre d'objets natifs sont définis et sont disposés de manière adjacente en mémoire. Une fois que des objets natifs qui ne devraient pas être divulgués sont exposés à JavaScript, il est possible de réaliser l'exécution de n'importe quel code dans le bac à sable.
Pour vérifier l'efficacité de cette méthode dans le dernier V8, nous pouvons modifier les fonctions natives de V8 pour révéler Uninitialized Oddball dans JavaScript.
Contourner la protection HardenType
Nous pouvons construire du code qui, lorsque certaines fonctions retournent UninitializedOddball, permet une lecture arbitraire. L'analyse du code assembleur optimisé montre que la fonction ne vérifie que si les propriétés de l'objet sont correctes, mais ne vérifie pas les valeurs correspondantes des propriétés, calculant directement le décalage selon la sémantique JavaScript pour accéder aux éléments du tableau, ce qui entraîne une confusion de types et permet une lecture arbitraire.
De même, toute écriture arbitraire peut également être construite par une méthode similaire. Il est recommandé d'ajouter une vérification du tableau map lors du retour des éléments du tableau dans la fonction d'optimisation, afin d'éviter de calculer directement les valeurs de retour d'offset.
Alerte sur les risques de sécurité
L'analyse indique qu'un certain logiciel de communication n'a pas encore corrigé cette vulnérabilité. Sur un système x86, en raison de l'absence de compression d'adresse, il est possible de lire et d'écrire arbitrairement directement par rapport à l'ensemble du processus. Bien que l'ASLR soit activé, en raison de la taille importante du fichier, il y a encore une grande probabilité de lire et d'écrire des contenus critiques. En combinant des méthodes telles que l'analyse PE, il est possible de réaliser une chaîne d'exploitation complète en peu de temps.
Cette fois, la vulnérabilité de sécurité ne concerne pas seulement un seul défaut, mais a également considérablement réduit la difficulté d'exploitation de certaines vulnérabilités similaires précédemment. Les hackers n'ont presque pas besoin de faire des recherches supplémentaires pour réaliser une exploitation complète, y compris toutes les vulnérabilités similaires rapportées auparavant.
Résumé
Cet article discute brièvement des méthodes de lecture arbitraire via la fuite d'Uninitialized Oddball. Il existe de nombreuses autres valeurs Sentinel dans V8, qui pourraient présenter des vulnérabilités de sécurité similaires. Cela nous donne quelques idées :
D'autres fuites de valeur Sentinel pourraient-elles également conduire à une évasion du sandbox V8 ?
Ces problèmes devraient-ils être considérés comme des vulnérabilités de sécurité formelles ?
Est-il nécessaire d'inclure des variables liées à la valeur Sentinel dans les tests de fuzz pour découvrir davantage de problèmes potentiels ?
Quoi qu'il en soit, ce type de problème peut considérablement réduire le délai d'exploitation complète par les hackers, ce qui mérite une attention particulière.