Vulnérabilité de débordement d'entiers dans le langage Move : risque lié à la vérification de la sécurité des références

La langue Move présente à nouveau une vulnérabilité critique : un débordement d'entier peut entraîner l'effondrement du Nœud

Récemment, des chercheurs en sécurité ont effectué une analyse approfondie du langage Move et ont découvert une nouvelle vulnérabilité de débordement d'entier. Cette vulnérabilité se produit lors du processus de vérification de la sécurité des références dans le langage Move, ce qui pourrait entraîner un effondrement du Nœud.

Le langage Move effectue une vérification de code avant l'exécution du bytecode, qui se divise en quatre étapes. La vulnérabilité récemment découverte se trouve dans l'étape reference_safety. Cette étape est principalement utilisée pour vérifier la sécurité des références, y compris la vérification de l'existence de références nulles et la sécurité d'accès aux références mutables.

Numen Cyber a découvert une autre vulnérabilité critique dans le langage move

Le déclenchement des vulnérabilités est lié au concept de bloc de base dans le langage Move. Un bloc de base est une séquence de code sans instructions de branchement, à l'exception des entrées et sorties. Move identifie les blocs de base en parcourant le bytecode et en recherchant des instructions de branchement.

Dans le processus de validation de la sécurité des références, le système va scanner les instructions de bytecode dans chaque bloc de base et déterminer si toutes les opérations de référence sont légales. Ce processus utilise la structure AbstractState, qui contient deux composants importants : le borrow graph et les locals.

Numen Cyber a découvert une autre vulnérabilité critique dans le langage move

La vulnérabilité se trouve dans la fonction join_. Lorsque la somme de la longueur des paramètres et de la longueur des variables locales dépasse 256, un dépassement d'entier peut se produire en raison de l'utilisation du type u8 pour représenter l'index local. Bien que Move dispose d'un mécanisme de vérification du nombre de locals, la longueur des paramètres n'est pas incluse.

Numen Cyber a découvert une autre vulnérabilité critique dans le langage move

En utilisant cette vulnérabilité de débordement, un attaquant peut construire un bloc de code en boucle pour modifier l'état du bloc. Lors de l'exécution à nouveau du bloc de base, si l'index requis par l'instruction n'existe pas dans la nouvelle carte des locaux, cela entraînera un crash du programme.

Les chercheurs ont fourni une preuve de concept (PoC) qui démontre comment déclencher cette vulnérabilité. En définissant des paramètres spécifiques et un nombre de variables locales, il est possible de réduire la longueur de la carte des locaux à 8. Lors de la prochaine exécution, essayer d'accéder à l'index inexistant 57 provoquera un panic.

Numen Cyber a découvert une autre vulnérabilité critique dans le langage move

Numen Cyber a découvert une nouvelle vulnérabilité critique dans le langage move

Numen Cyber a découvert une autre vulnérabilité critique dans le langage move

Numen Cyber a découvert en exclusivité une nouvelle vulnérabilité critique dans le langage move

Numen Cyber a découvert une autre vulnérabilité critique dans le langage move

Numen Cyber a découvert une autre vulnérabilité critique dans le langage move

Numen Cyber a découvert une nouvelle vulnérabilité critique dans le langage move

Numen Cyber a découvert une autre vulnérabilité critique dans le langage move

Découverte exclusive de Numen Cyber d'une autre vulnérabilité critique dans le langage move

Numen Cyber a découvert une autre vulnérabilité critique dans le langage move

Numen Cyber a découvert une nouvelle vulnérabilité critique dans le langage move

Cette faille prouve encore une fois qu'il n'existe pas de code absolument sécurisé. Bien que le langage Move effectue une vérification statique avant l'exécution, il peut encore être contourné par un débordement d'entier. Les chercheurs suggèrent aux concepteurs du langage Move d'ajouter davantage de code de vérification à l'exécution pour éviter que des problèmes similaires ne se produisent.

Actuellement, l'équipe de recherche a découvert une autre vulnérabilité dans le langage Move, et partagera plus de détails par la suite. Ces découvertes sont d'une grande importance pour l'amélioration de la sécurité du langage Move.

Numen Cyber a découvert une autre vulnérabilité critique dans le langage move

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
  • 4
  • Partager
Commentaire
0/400
PositionPhobiavip
· Il y a 10h
Combien de pièges y a-t-il dans ce code ? Un de passé, un de pris.
Voir l'originalRépondre0
TradFiRefugeevip
· Il y a 10h
move cette sécurité, à quoi ça sert ?
Voir l'originalRépondre0
APY追逐者vip
· Il y a 10h
Encore en panne, la crédibilité de Move...
Voir l'originalRépondre0
MemeEchoervip
· Il y a 10h
Le mouvement a encore des problèmes.
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)