Move言語の参照セキュリティメカニズムが整数オーバーフローの脆弱性を発見、AptosMoveEVMに影響

robot
概要作成中

Move言語の引用安全メカニズムで新しい整数オーバーフローの脆弱性が発見されました

最近、安全研究者がAptos MoveEVMを詳細に分析する中で、新たな整数オーバーフローの脆弱性を発見しました。この脆弱性はMove言語の参照安全性検証プロセスに存在し、具体的にはreference_safetyステップにあります。

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

Move言語はバイトコードを実行する前にコードユニットの検証を行い、4つのステップに分かれています。参照の安全性検証はその重要なステップの一つであり、主に空の参照が存在しないこと、可変参照へのアクセスが安全であること、グローバルストレージへの参照アクセスが安全であることを確保するために使用されます。

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

安全検証の核心は、各関数内の基本ブロックを分析することです。基本ブロックとは、入口と出口を除いて分岐命令がないコードのシーケンスを指します。Moveは、バイトコードをトラバースし、すべての分岐命令とループ命令を探すことで基本ブロックを特定します。

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

検証プロセスは、状態を表すためにAbstractState構造体を使用し、borrow graphとlocalsの二つの部分を含みます。検証時には基本ブロックコードが生成され、post stateが生成され、その後、pre stateと結合してブロック状態を更新し、後続のブロックに伝播します。このプロセスは、V8 turbofanのSea of Nodesの考え方に似ています。

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

バグはjoin_関数に現れます。関数のパラメータの長さとローカル変数の長さの合計が256を超えると、u8型でlocalを反復処理するため、整数オーバーフローが発生します。Moveにはlocalsの数を検証するプロセスがありますが、localsのみを検証し、パラメータのlengthは含まれていません。

! Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

! Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

! Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

この脆弱性を利用することで、攻撃者はループコードブロックを構築し、オーバーフローを利用してブロックの状態を変更できます。再度実行されると、もし指令がアクセスする必要のあるインデックスが新しいローカルマップに存在しない場合、DoSが発生します。

! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました

この脆弱性は、Moveのようなセキュリティを重視する言語でも問題が存在する可能性があることを再び示しています。Move言語の設計者には、実行時により多くのチェックを追加することを推奨します。検証段階のセキュリティチェックにのみ依存するべきではありません。また、開発者にはコード監査の重要性を思い出させます。

MOVE5.49%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 5
  • 共有
コメント
0/400
BoredWatchervip
· 07-20 18:00
このバグはひどすぎる、どうしてこんなに低レベルなんだ
原文表示返信0
WalletInspectorvip
· 07-20 17:59
ああ、moveを使うよりrustを使った方がいい。
原文表示返信0
MemecoinTradervip
· 07-20 17:58
lmao また別のl1が破滅する... クラシックな整数オーバーフローアルファリーク
原文表示返信0
LidoStakeAddictvip
· 07-20 17:56
Moveまた問題が発生しましたね、はは
原文表示返信0
BuyHighSellLowvip
· 07-20 17:53
またダメになった すべてを消し去れ すべてやり直そう
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)