Le mécanisme de sécurité de référence du langage Move découvre une vulnérabilité de dépassement d'entier affectant AptosMoveEVM

robot
Création du résumé en cours

Une nouvelle vulnérabilité de débordement entier découverte dans le mécanisme de sécurité des références Move

Récemment, des chercheurs en sécurité ont découvert une nouvelle vulnérabilité de débordement d'entier lors de l'analyse approfondie d'Aptos MoveEVM. Cette vulnérabilité se trouve dans le processus de validation de la sécurité des références du langage Move, plus précisément à l'étape reference_safety.

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

Le langage Move effectue une vérification des unités de code avant l'exécution des bytecodes, qui se divise en 4 étapes. La vérification de la sécurité des références est l'un des éléments essentiels, principalement utilisée pour garantir qu'il n'y a pas de références nulles, que l'accès aux références mutables est sécurisé, et que l'accès aux références de stockage global est sécurisé, etc.

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

Le noyau de la validation de la sécurité par citation est l'analyse des blocs de base dans chaque fonction. Un bloc de base est une séquence de code sans instructions de branchement, à l'exception de l'entrée et de la sortie. Move détermine les blocs de base en parcourant le bytecode et en recherchant toutes les instructions de branchement et les instructions de boucle.

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

Le processus de validation utilise la structure AbstractState pour représenter l'état, qui comprend deux parties : le graphe des emprunts et les variables locales. Lors de la validation, le code de génération des blocs de base exécute l'état postérieure, puis fusionne et met à jour l'état des blocs avec l'état préalable, et le propage aux blocs suivants. Ce processus est similaire à l'idée de Sea of Nodes dans V8 turbofan.

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

Une vulnérabilité se produit dans la fonction join_. Lorsque la somme de la longueur des paramètres de la fonction et de la longueur des variables locales dépasse 256, l'utilisation du type u8 pour itérer sur local entraîne un dépassement d'entier. Bien que Move ait un processus de vérification du nombre de locals, il ne vérifie que les locals et n'inclut pas la longueur des paramètres.

Numen Cyber a découvert une nouvelle 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 nouvelle 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 nouvelle 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 nouvelle 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 nouvelle vulnérabilité critique dans le langage move

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

En exploitant cette vulnérabilité, un attaquant peut construire un bloc de code en boucle, utilisant un débordement pour modifier l'état du bloc. Lorsqu'il est exécuté à nouveau, si l'index requis par l'instruction n'existe pas dans la nouvelle carte des locaux, cela provoquera un DoS.

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

Cette vulnérabilité montre une fois de plus que même des langages comme Move, qui attachent une grande importance à la sécurité, peuvent avoir des problèmes. Il est recommandé aux concepteurs du langage Move d'ajouter davantage de vérifications à l'exécution, et de ne pas se fier uniquement aux vérifications de sécurité lors de la phase de validation. Cela rappelle également aux développeurs l'importance de l'audit de code.

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
  • 5
  • Partager
Commentaire
0/400
BoredWatchervip
· Il y a 16h
Ce bug est vraiment absurde, comment peut-il être si basique ?
Voir l'originalRépondre0
WalletInspectorvip
· Il y a 16h
Eh, il vaut mieux utiliser Rust que Move.
Voir l'originalRépondre0
MemecoinTradervip
· Il y a 16h
mdr un autre l1 se fait défoncer... fuite alpha classique de débordement d'entier
Voir l'originalRépondre0
LidoStakeAddictvip
· Il y a 16h
Move a encore des problèmes, tsk tsk.
Voir l'originalRépondre0
BuyHighSellLowvip
· Il y a 16h
On a encore tout laissé tomber. Détruisez tout, tout recommence.
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)