📢 Gate廣場 #NERO发帖挑战# 秀觀點贏大獎活動火熱開啓!
Gate NERO生態周來襲!發帖秀出NERO項目洞察和活動實用攻略,瓜分30,000NERO!
💰️ 15位優質發帖用戶 * 2,000枚NERO每人
如何參與:
1️⃣ 調研NERO項目
對NERO的基本面、社區治理、發展目標、代幣經濟模型等方面進行研究,分享你對項目的深度研究。
2️⃣ 參與並分享真實體驗
參與NERO生態周相關活動,並曬出你的參與截圖、收益圖或實用教程。可以是收益展示、簡明易懂的新手攻略、小竅門,也可以是行情點位分析,內容詳實優先。
3️⃣ 鼓勵帶新互動
如果你的帖子吸引到他人參與活動,或者有好友評論“已參與/已交易”,將大幅提升你的獲獎概率!
NERO熱門活動(帖文需附以下活動連結):
NERO Chain (NERO) 生態周:Gate 已上線 NERO 現貨交易,爲回饋平台用戶,HODLer Airdrop、Launchpool、CandyDrop、餘幣寶已上線 NERO,邀您體驗。參與攻略見公告:https://www.gate.com/announcements/article/46284
高質量帖子Tips:
教程越詳細、圖片越直觀、互動量越高,獲獎幾率越大!
市場見解獨到、真實參與經歷、有帶新互動者,評選將優先考慮。
帖子需原創,字數不少於250字,且需獲得至少3條有效互動
Move語言引用安全驗證存整數溢出漏洞 可能導致拒絕服務
Move語言引用安全檢查中的整數溢出漏洞分析
近期,一個Move語言引用安全驗證過程中的新整數溢出漏洞被發現。這個漏洞出現在驗證代碼單元的reference_safety步驟中,涉及到Move語言中的基本塊和引用安全機制。
Move語言在執行字節碼前會進行代碼驗證,分爲四個步驟。引用安全驗證是其中一個重要環節,用於檢查是否存在懸空引用、對可變引用的訪問是否安全等。驗證過程會遍歷每個基本塊的字節碼指令。
基本塊是指除入口和出口外沒有分支指令的代碼序列。Move語言通過檢查分支和循環指令來識別基本塊。引用安全驗證會掃描每個基本塊中的指令,判斷引用操作的合法性。
驗證過程使用AbstractState結構體來表示狀態,包含locals和borrow graph兩個關鍵組件。驗證會比較執行前後的狀態,合並結果並傳播到後續塊。
漏洞出現在join_函數中。當參數長度和局部變量長度之和超過256時,由於使用u8類型迭代locals,會發生整數溢出。這可能導致新的locals map與之前不同,進而在再次執行時訪問不存在的索引,引發拒絕服務。
PoC代碼通過設置特定的參數和局部變量數量,觸發整數溢出,導致新的locals map長度縮短。再次執行時訪問不存在的offset,最終引發panic。
這個漏洞說明即使是靜態類型語言也可能存在安全問題。建議Move語言設計者在運行時增加更多安全檢查,而不僅僅依賴驗證階段的檢查。同時也反映出代碼審計的重要性。