Application de la valeur sentinelle dans Chrome V8 et ses risques de sécurité
Il existe plusieurs objets Sentinel Value spéciaux dans le moteur V8, tels que TheHole et Uninitialized Oddball. Ces objets ne devraient pas être exposés à l'environnement JavaScript, mais certaines vulnérabilités peuvent entraîner leur divulgation, ce qui peut provoquer des problèmes de sécurité.
Récemment, des chercheurs ont découvert qu'il était possible de contourner le mécanisme de protection HardenType de V8 en exploitant des objets Uninitialized Oddball. Cette méthode est apparue pour la première fois dans un rapport de problème soumis par un membre de l'équipe Project Zero et reste efficace dans la dernière version de V8.
Cette méthode d'esquive est universelle et peut être utilisée pour exploiter plusieurs vulnérabilités historiques, telles que CVE-2021-30551, CVE-2022-1486, etc. Elle réduit la difficulté d'exploitation des vulnérabilités, rendant possible l'exécution de code à distance simplement en divulguant un objet Uninitialized Oddball.
Pour valider cette méthode, vous pouvez modifier la fonction native %TheHole() de V8 pour qu'elle renvoie un objet Uninitialized Oddball. Les tests montrent que cela permet effectivement d'effectuer des lectures de mémoire relativement arbitraires.
Dans le code JavaScript optimisé, V8 ne vérifie pas correctement le type des éléments du tableau, calculant et retournant directement la valeur par décalage, ce qui entraîne une confusion de types et une lecture arbitraire. Il est conseillé d'ajouter une vérification de la carte de tableau pendant le processus d'optimisation pour éviter cela.
La découverte de cette méthode de contournement met en lumière certaines questions importantes :
D'autres fuites d'objets Sentinel Value peuvent également être dangereuses.
La question de savoir si les problèmes connexes doivent être considérés comme des vulnérabilités de sécurité officielles reste controversée.
Dans les tests de robustesse, il peut être envisagé d'introduire la valeur sentinelle en tant que variable.
Quoi qu'il en soit, ce type de problème réduira considérablement le temps nécessaire aux hackers pour exploiter complètement la vulnérabilité, ce qui mérite une attention particulière. Les éditeurs de logiciels concernés doivent rapidement corriger les versions affectées afin de réduire les risques potentiels.
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.
8 J'aime
Récompense
8
4
Reposter
Partager
Commentaire
0/400
TerraNeverForget
· Il y a 16h
Le navigateur a encore un gros problème cette fois.
Voir l'originalRépondre0
BearHugger
· Il y a 16h
Encore un trou dans V8 ? Ce bug est vraiment absurde.
La fuite de la valeur Sentinel du moteur V8 entraîne des risques de sécurité, à surveiller.
Application de la valeur sentinelle dans Chrome V8 et ses risques de sécurité
Il existe plusieurs objets Sentinel Value spéciaux dans le moteur V8, tels que TheHole et Uninitialized Oddball. Ces objets ne devraient pas être exposés à l'environnement JavaScript, mais certaines vulnérabilités peuvent entraîner leur divulgation, ce qui peut provoquer des problèmes de sécurité.
Récemment, des chercheurs ont découvert qu'il était possible de contourner le mécanisme de protection HardenType de V8 en exploitant des objets Uninitialized Oddball. Cette méthode est apparue pour la première fois dans un rapport de problème soumis par un membre de l'équipe Project Zero et reste efficace dans la dernière version de V8.
Cette méthode d'esquive est universelle et peut être utilisée pour exploiter plusieurs vulnérabilités historiques, telles que CVE-2021-30551, CVE-2022-1486, etc. Elle réduit la difficulté d'exploitation des vulnérabilités, rendant possible l'exécution de code à distance simplement en divulguant un objet Uninitialized Oddball.
Pour valider cette méthode, vous pouvez modifier la fonction native %TheHole() de V8 pour qu'elle renvoie un objet Uninitialized Oddball. Les tests montrent que cela permet effectivement d'effectuer des lectures de mémoire relativement arbitraires.
Dans le code JavaScript optimisé, V8 ne vérifie pas correctement le type des éléments du tableau, calculant et retournant directement la valeur par décalage, ce qui entraîne une confusion de types et une lecture arbitraire. Il est conseillé d'ajouter une vérification de la carte de tableau pendant le processus d'optimisation pour éviter cela.
La découverte de cette méthode de contournement met en lumière certaines questions importantes :
Quoi qu'il en soit, ce type de problème réduira considérablement le temps nécessaire aux hackers pour exploiter complètement la vulnérabilité, ce qui mérite une attention particulière. Les éditeurs de logiciels concernés doivent rapidement corriger les versions affectées afin de réduire les risques potentiels.