Move言語の参照セキュリティモジュール整数オーバーフローの脆弱性またはノードのサービス拒否

robot
概要作成中

Move言語の引用安全モジュールに整数オーバーフローの脆弱性が存在

最近、安全研究者がMove言語を詳細に分析している際に、重大な整数オーバーフローの脆弱性を発見しました。この脆弱性は参照セキュリティ検証モジュールに存在し、サービス拒否攻撃を引き起こす可能性があります。この記事では、この脆弱性の原理と影響について詳しく説明します。

脆弱性の背景

Move言語はバイトコードを実行する前にコード検証を行い、その中には参照の安全性チェックが含まれています。このプロセスは数段階に分かれており、今回発見された脆弱性はreference_safety検証段階に存在しています。

引用の安全確認の主なプロセスは:

  1. コードを基本ブロックに分割する
  2. 各基本ブロックを分析する
  3. マージ分析の前後の状態
  4. 結果を次のブロックに伝播する

AbstractState 構造体は、ローカルや借用グラフ情報など、分析状態を表すために使用されます。

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

脆弱性の詳細

バグは、マージ解析状態のjoin_関数に発生しています。この関数はu8型でlocalsを反復処理しますが、パラメータの長さとローカル変数の長さの合計が256を超えると、整数オーバーフローが発生します。

具体的には:

  • join_関数でローカルself.iter_locals()反復処理を使用する
  • iter_locals()はu8型のイテレータを返します
  • パラメータの長さ + ローカル変数の長さ > 256 の場合、イテレーターはオーバーフローします。

Moveはローカル変数の数を検証するプロセスを持っていますが、パラメータの長さは含まれていません。

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

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

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

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

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

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

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

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

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

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

エクスプロイト

攻撃者は、オーバーフローを利用してブロックの状態を変更するループコードブロックを構築できます。

  1. パラメータとローカル変数の総数は256を超えます
  2. 最初の実行後、新しいlocalsマップの長さがオーバーフローして小さくなります
  3. 再度実行すると、存在しないlocalsインデックスにアクセスするとpanicが発生します

これによりノードがサービスを拒否する可能性があります。

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

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

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

脆弱性への影響

この脆弱性は以下を引き起こす可能性があります:

  1. Moveバイトコード検証器がクラッシュしました
  2. Moveに依存するブロックチェーンノードがサービスを拒否する
  3. 一部のセキュリティチェックを回避する

修正の提案

  1. localsの境界チェックにパラメータの長さの検証を追加する
  2. より大きな整数型であるu16を使用してlocalsを反復処理する
  3. 実行時に追加のセキュリティチェックを追加する

サマリー

この脆弱性は、設計が厳密な言語であってもセキュリティリスクが存在する可能性があることを再度示しています。Move言語に関しては、検証段階に加えて、実行時にも必要なセキュリティチェックを追加することをお勧めします。セキュリティ研究者は、Move言語をさらに深く分析し、潜在的な問題を発見し続けるでしょう。

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

MOVE-1.06%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 5
  • リポスト
  • 共有
コメント
0/400
MidnightTradervip
· 15時間前
これはまたどの初心者が書いたコードですか、ひざまずきました。
原文表示返信0
MevShadowrangervip
· 15時間前
また整数オーバーフローを遊んでいる
原文表示返信0
WagmiOrRektvip
· 15時間前
まだ以前全ポジション決済Moveしたから大丈夫だ
原文表示返信0
CommunityWorkervip
· 15時間前
moveはまた暴露されるの?何を慌てているの?
原文表示返信0
CryingOldWalletvip
· 15時間前
またバグが出たの?moveももう魅力的じゃないね。
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)