🎉 攢成長值,抽華爲Mate三折疊!廣場第 1️⃣ 2️⃣ 期夏季成長值抽獎大狂歡開啓!
總獎池超 $10,000+,華爲Mate三折疊手機、F1紅牛賽車模型、Gate限量週邊、熱門代幣等你來抽!
立即抽獎 👉 https://www.gate.com/activities/pointprize?now_period=12
如何快速賺成長值?
1️⃣ 進入【廣場】,點擊頭像旁標識進入【社區中心】
2️⃣ 完成發帖、評論、點讚、發言等日常任務,成長值拿不停
100%有獎,抽到賺到,大獎等你抱走,趕緊試試手氣!
截止於 8月9日 24:00 (UTC+8)
詳情: https://www.gate.com/announcements/article/46384
#成长值抽奖12期开启#
Move語言引用安全機制曝整數溢出漏洞 或致拒絕服務攻擊
Move語言引用安全機制存在整數溢出漏洞
近期,安全研究人員在深入分析Move語言時發現了一個新的整數溢出漏洞。這個漏洞出現在Move語言的引用安全驗證過程中,可能導致拒絕服務攻擊。
Move語言在執行字節碼前會進行代碼驗證,分爲4個步驟。這個漏洞存在於引用安全(reference_safety)驗證階段。引用安全驗證的主要目的是確保沒有懸空引用、可變引用訪問安全、全局存儲引用訪問安全等。
驗證過程會遍歷每個基本塊的字節碼指令。基本塊是指除入口和出口外沒有分支指令的代碼序列。Move語言通過分析分支指令和循環指令來識別基本塊。
引用安全驗證使用AbstractState結構體來跟蹤局部變量和引用關係。它包含locals和borrow graph兩部分。驗證時會比較執行前後的狀態,並合並更新。
漏洞出現在合並狀態的join_函數中。該函數使用u8類型迭代locals,但如果參數和局部變量總數超過256會導致整數溢出。雖然有校驗locals個數的邏輯,但沒有考慮參數長度。
攻擊者可以構造一個循環的基本塊,利用這個溢出改變狀態。再次執行時訪問不存在的locals索引會導致panic,從而造成拒絕服務。
這個漏洞反映出即使是靜態類型安全的語言也可能存在安全隱患。建議Move語言在運行時增加更多安全檢查,不僅依賴驗證階段。同時也說明了代碼審計的重要性。