# Move言語の引用安全メカニズムで新しい整数オーバーフローの脆弱性が発見されました最近、安全研究者がAptos MoveEVMを詳細に分析する中で、新たな整数オーバーフローの脆弱性を発見しました。この脆弱性はMove言語の参照安全性検証プロセスに存在し、具体的にはreference_safetyステップにあります。! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-bde089e8295c5d7b9420c93ad5d47b35)Move言語はバイトコードを実行する前にコードユニットの検証を行い、4つのステップに分かれています。参照の安全性検証はその重要なステップの一つであり、主に空の参照が存在しないこと、可変参照へのアクセスが安全であること、グローバルストレージへの参照アクセスが安全であることを確保するために使用されます。! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-eb6397a8a98b556071724d98a4837b59)安全検証の核心は、各関数内の基本ブロックを分析することです。基本ブロックとは、入口と出口を除いて分岐命令がないコードのシーケンスを指します。Moveは、バイトコードをトラバースし、すべての分岐命令とループ命令を探すことで基本ブロックを特定します。! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-6952376046c901dfae2b19d5144746b5)検証プロセスは、状態を表すためにAbstractState構造体を使用し、borrow graphとlocalsの二つの部分を含みます。検証時には基本ブロックコードが生成され、post stateが生成され、その後、pre stateと結合してブロック状態を更新し、後続のブロックに伝播します。このプロセスは、V8 turbofanのSea of Nodesの考え方に似ています。! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-92892f2a9dffea9f805f3a1952e82703)バグはjoin_関数に現れます。関数のパラメータの長さとローカル変数の長さの合計が256を超えると、u8型でlocalを反復処理するため、整数オーバーフローが発生します。Moveにはlocalsの数を検証するプロセスがありますが、localsのみを検証し、パラメータのlengthは含まれていません。! [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)! [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)この脆弱性を利用することで、攻撃者はループコードブロックを構築し、オーバーフローを利用してブロックの状態を変更できます。再度実行されると、もし指令がアクセスする必要のあるインデックスが新しいローカルマップに存在しない場合、DoSが発生します。! [Numen Cyberは、移動言語に別の高リスクの脆弱性を独占的に発見しました](https://img-cdn.gateio.im/social/moments-ae25cc7d31726e2e1477e6d112b7aa75)この脆弱性は、Moveのようなセキュリティを重視する言語でも問題が存在する可能性があることを再び示しています。Move言語の設計者には、実行時により多くのチェックを追加することを推奨します。検証段階のセキュリティチェックにのみ依存するべきではありません。また、開発者にはコード監査の重要性を思い出させます。
Move言語の参照セキュリティメカニズムが整数オーバーフローの脆弱性を発見、AptosMoveEVMに影響
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言語の設計者には、実行時により多くのチェックを追加することを推奨します。検証段階のセキュリティチェックにのみ依存するべきではありません。また、開発者にはコード監査の重要性を思い出させます。