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.
Move言語の参照セキュリティチェックには整数オーバーフローの脆弱性が存在し、サービス拒否攻撃を引き起こす可能性があります。
Move言語で新しい整数オーバーフローの脆弱性が発見されました
最近、Move言語における新しい整数オーバーフローの脆弱性が発見されました。この脆弱性は、コード検証段階の参照安全チェックプロセスに存在し、サービス拒否攻撃を引き起こす可能性があります。
Move言語はバイトコードを実行する前にコード確認を行い、これには4つのステップがあります。今回の脆弱性は、参照安全(reference_safety)ステップで発生しました。参照安全チェックは、コード内に空の参照が存在するかどうか、可変参照のアクセスが安全かどうか、グローバルストレージ参照のアクセスが安全かどうかなどの問題を主に検証します。
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
検証プロセスでは、各基本ブロックが分析されます。基本ブロックとは、入口と出口を除いて分岐命令がないコードシーケンスを指します。Moveはバイトコードを遍歴し、分岐およびループ命令を探すことで基本ブロックを識別します。
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
引用セキュリティチェックモジュールは、関数内の各基本ブロックのバイトコード命令をスキャンし、参照操作が合法であるかどうかを判断します。主なプロセスには、基本ブロックコードの実行、実行後の状態の生成、実行前後の状態の統合更新、ブロックの状態の更新、そして後続ブロックへの伝播が含まれます。
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
バグはマージ状態のプロセス中に発生します。関数の引数の数とローカル変数の数の合計が256を超えると、u8型を使用して保存するため、整数オーバーフローが発生します。これにより、その後の実行中に存在しないローカル変数にアクセスされ、panicが引き起こされます。
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
攻撃者は、ループする基本ブロックを構築し、このオーバーフローを利用してブロックの状態を変更することができます。再び実行すると、存在しないローカル変数のインデックスにアクセスすることがサービス拒否を引き起こします。
! Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました
この脆弱性は、厳密に設計されたMove言語であっても、回避される可能性のあるセキュリティ脆弱性が存在することを示しています。Move言語の設計者は、同様の予期しない事態を防ぐために、実行時に追加のチェックを増やすことをお勧めします。今後はMove言語のセキュリティ研究をさらに強化する必要があります。
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました