Move言語の引用安全モジュールで整数オーバーフローの脆弱性が発見され、サービス拒否攻撃を引き起こす可能性があります。

robot
概要作成中

Move言語の参照安全モジュールが新しい整数オーバーフローの脆弱性を発見

最近、研究者はMove言語の詳細な分析を進める中で、新しい整数オーバーフローの脆弱性を発見しました。この脆弱性は参照安全モジュールに存在し、深刻なサービス拒否攻撃を引き起こす可能性があります。本稿では、この脆弱性の発見プロセスと技術的詳細について詳しく紹介します。

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

Move言語の参照安全メカニズム

Move言語はRustの考え方を借りており、二種類の参照タイプをサポートしています: 不変参照(&)と可変参照(&mut)。参照安全モジュールは、関数内の基本ブロックとバイトコード命令をスキャンすることによって、すべての参照操作の合法性を検証します。

検証プロセスは主に以下のステップを含みます:

  1. 各基本ブロックを分析する
  2. 基本ブロックコードの実行によりポストステートを生成 3.プレステートとポストステートをマージします
  3. ブロックの状態を更新し、次のブロックに伝播させる

その中で、stateはlocalsとborrow graphの2つの重要なコンポーネントを含み、関数内での参照の安全性を確保します。

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

脆弱性の詳細

この脆弱性は、セキュリティモジュールを参照するjoin_関数に現れます。関数の引数の長さとローカル変数の長さの合計が256を超えると、u8型でlocalsを反復処理するため、整数オーバーフローが発生します。

具体的には:

  • iter_locals()はu8タイプのイテレータを返します
  • パラメータの長さ + ローカル変数の長さが 256 を超えると、オーバーフローします
  • 開発者はこれを確認する必要があることに気付いたようですが、実際のコードはローカル変数の数だけをチェックしています。

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

エクスプロイト

この脆弱性を利用して、ループコードブロックを構築できます:

  1. 初回実行時にオーバーフローをトリガーし、localsマップを変更する
  2. 2回目の実行時に存在しないlocalsインデックスにアクセスし、panicを引き起こします

これはノードのクラッシュを引き起こし、サービス拒否攻撃を形成します。

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

脆弱性の再発

研究者はこの脆弱性を再現するためのPoCを提供しました:

  1. パラメータとローカルを SignatureIndex(0) に設定して、num_localsが 264 になるようにします
  2. 最初の実行後、新しいlocalsマップの長さは8になりました
  3. 2回目の実行時、copyloc(57)が存在しないoffsetにアクセスしたためpanicが発生しました

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

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

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

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

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

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

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

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

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

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

まとめと提案

この脆弱性は次のことを示しています:

  1. 絶対に安全なコードは存在せず、静的チェックは回避される可能性があります。
  2. コード監査は重要であり、開発者の不注意を発見することができます。
  3. Move言語は、単に検証段階のセキュリティチェックに依存するだけでなく、実行時チェックを追加する必要があります。

研究者は、Move言語の設計者に対して、同様の脆弱性が利用されてより深刻な問題を引き起こさないように、実行時の安全メカニズムを強化するよう呼びかけています。

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

原文表示
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • 報酬
  • 7
  • 共有
コメント
0/400
SmartContractWorkervip
· 10時間前
また鍋から出ましたね 修理するのが大変でした
原文表示返信0
staking_grampsvip
· 07-06 05:24
Moveこの脆弱性はあまりにも素人すぎるでしょう
原文表示返信0
ChainMaskedRidervip
· 07-06 05:22
コードを書く技術があまりにも繊細ではないですね
原文表示返信0
MissedTheBoatvip
· 07-06 05:20
またバグが出たのか、Moveもあまり良くないな。
原文表示返信0
GateUser-c799715cvip
· 07-06 05:19
コードは誰が書いたの?こんなに下手なのはどうして?
原文表示返信0
YieldChaservip
· 07-06 05:17
u8がまた問題を起こしました。
原文表示返信0
BridgeJumpervip
· 07-06 05:09
規範のない開発 バグ修正に涙が二行
原文表示返信0
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)