# Move言語の引用安全モジュールに整数オーバーフローの脆弱性が存在最近、安全研究者がMove言語を詳細に分析している際に、重大な整数オーバーフローの脆弱性を発見しました。この脆弱性は参照セキュリティ検証モジュールに存在し、サービス拒否攻撃を引き起こす可能性があります。この記事では、この脆弱性の原理と影響について詳しく説明します。## 脆弱性の背景Move言語はバイトコードを実行する前にコード検証を行い、その中には参照の安全性チェックが含まれています。このプロセスは数段階に分かれており、今回発見された脆弱性はreference_safety検証段階に存在しています。引用の安全確認の主なプロセスは:1. コードを基本ブロックに分割する2. 各基本ブロックを分析する3. マージ分析の前後の状態4. 結果を次のブロックに伝播するAbstractState 構造体は、ローカルや借用グラフ情報など、分析状態を表すために使用されます。! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-bde089e8295c5d7b9420c93ad5d47b35)## 脆弱性の詳細バグは、マージ解析状態のjoin_関数に発生しています。この関数はu8型でlocalsを反復処理しますが、パラメータの長さとローカル変数の長さの合計が256を超えると、整数オーバーフローが発生します。具体的には:- join_関数でローカルself.iter_locals()反復処理を使用する- iter_locals()はu8型のイテレータを返します- パラメータの長さ + ローカル変数の長さ > 256 の場合、イテレーターはオーバーフローします。Moveはローカル変数の数を検証するプロセスを持っていますが、パラメータの長さは含まれていません。! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-eb6397a8a98b556071724d98a4837b59)! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-6952376046c901dfae2b19d5144746b5)! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-92892f2a9dffea9f805f3a1952e82703)! [Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-1347ef8b31983109babdf8ef29270c67)! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-ac937ab4f426d30a476feb32520a95b4)! [Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-a18dcf64108d1a75b728ffe8391100f1)! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-7c8fe4e4cf376ad49d729a6f80df6f08)! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-c598d61833550ec5494f9a5a4ee2a760)! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-12c60c225a5629f6d927982a7585fc5b)! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-94b0c97bb9e287ed715cddb5165f129d)## エクスプロイト攻撃者は、オーバーフローを利用してブロックの状態を変更するループコードブロックを構築できます。1. パラメータとローカル変数の総数は256を超えます2. 最初の実行後、新しいlocalsマップの長さがオーバーフローして小さくなります3. 再度実行すると、存在しないlocalsインデックスにアクセスするとpanicが発生しますこれによりノードがサービスを拒否する可能性があります。! [Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-095e2b585c45a86b0a689214ca673619)! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-5ebaa03263f7a87edd78d146c5beadd2)! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-fe905356cbee596e8aba08ec14f5d508)## 脆弱性への影響この脆弱性は以下を引き起こす可能性があります:1. Moveバイトコード検証器がクラッシュしました2. Moveに依存するブロックチェーンノードがサービスを拒否する3. 一部のセキュリティチェックを回避する## 修正の提案1. localsの境界チェックにパラメータの長さの検証を追加する2. より大きな整数型であるu16を使用してlocalsを反復処理する3. 実行時に追加のセキュリティチェックを追加する## サマリーこの脆弱性は、設計が厳密な言語であってもセキュリティリスクが存在する可能性があることを再度示しています。Move言語に関しては、検証段階に加えて、実行時にも必要なセキュリティチェックを追加することをお勧めします。セキュリティ研究者は、Move言語をさらに深く分析し、潜在的な問題を発見し続けるでしょう。! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-ae25cc7d31726e2e1477e6d112b7aa75)
Move言語の参照セキュリティモジュール整数オーバーフローの脆弱性またはノードのサービス拒否
Move言語の引用安全モジュールに整数オーバーフローの脆弱性が存在
最近、安全研究者がMove言語を詳細に分析している際に、重大な整数オーバーフローの脆弱性を発見しました。この脆弱性は参照セキュリティ検証モジュールに存在し、サービス拒否攻撃を引き起こす可能性があります。この記事では、この脆弱性の原理と影響について詳しく説明します。
脆弱性の背景
Move言語はバイトコードを実行する前にコード検証を行い、その中には参照の安全性チェックが含まれています。このプロセスは数段階に分かれており、今回発見された脆弱性はreference_safety検証段階に存在しています。
引用の安全確認の主なプロセスは:
AbstractState 構造体は、ローカルや借用グラフ情報など、分析状態を表すために使用されます。
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
脆弱性の詳細
バグは、マージ解析状態のjoin_関数に発生しています。この関数はu8型でlocalsを反復処理しますが、パラメータの長さとローカル変数の長さの合計が256を超えると、整数オーバーフローが発生します。
具体的には:
Moveはローカル変数の数を検証するプロセスを持っていますが、パラメータの長さは含まれていません。
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
エクスプロイト
攻撃者は、オーバーフローを利用してブロックの状態を変更するループコードブロックを構築できます。
これによりノードがサービスを拒否する可能性があります。
! Numen Cyberは、移動言語に別のリスクの高い脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました
脆弱性への影響
この脆弱性は以下を引き起こす可能性があります:
修正の提案
サマリー
この脆弱性は、設計が厳密な言語であってもセキュリティリスクが存在する可能性があることを再度示しています。Move言語に関しては、検証段階に加えて、実行時にも必要なセキュリティチェックを追加することをお勧めします。セキュリティ研究者は、Move言語をさらに深く分析し、潜在的な問題を発見し続けるでしょう。
! Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました