📢 Gate廣場獨家活動: #PUBLIC创作大赛# 正式開啓!
參與 Gate Launchpool 第 297 期 — PublicAI (PUBLIC),並在 Gate廣場發布你的原創內容,即有機會瓜分 4,000 枚 $PUBLIC 獎勵池!
🎨 活動時間
2025年8月18日 10:00 – 2025年8月22日 16:00 (UTC)
📌 參與方式
在 Gate廣場發布與 PublicAI (PUBLIC) 或當前 Launchpool 活動相關的原創內容
內容需不少於 100 字(可爲分析、教程、創意圖文、測評等)
添加話題: #PUBLIC创作大赛#
帖子需附帶 Launchpool 參與截圖(如質押記錄、領取頁面等)
🏆 獎勵設置(總計 4,000 枚 $PUBLIC)
🥇 一等獎(1名):1,500 $PUBLIC
🥈 二等獎(3名):每人 500 $PUBLIC
🥉 三等獎(5名):每人 200 $PUBLIC
📋 評選標準
內容質量(相關性、清晰度、創意性)
互動熱度(點讚、評論)
含有 Launchpool 參與截圖的帖子將優先考慮
📄 注意事項
所有內容須爲原創,嚴禁抄襲或虛假互動
獲獎用戶需完成 Gate廣場實名認證
Gate 保留本次活動的最終解釋權
Move語言整數溢出漏洞:引用安全驗證存風險
Move語言又現高危漏洞:整數溢出可導致節點崩潰
近期,安全研究人員在深入分析Aptos Moveevm時發現了一個新的整數溢出漏洞。這個漏洞存在於Move語言的引用安全驗證過程中,可能導致節點崩潰。
Move語言在執行字節碼前會進行代碼驗證,分爲4個步驟。此漏洞出現在reference_safety步驟中。該步驟主要用於驗證引用的安全性,包括檢查是否存在懸空引用、可變引用訪問是否安全等。
驗證過程會遍歷每個基本塊並進行分析。基本塊是指除入口和出口外沒有分支指令的代碼序列。Move語言通過查找分支和循環指令來識別基本塊。
在驗證引用安全性時,會維護一個AbstractState結構體,包含borrow graph和locals信息。驗證過程會執行基本塊代碼,生成執行後的state,然後與執行前的state進行合並,更新塊狀態並傳播到後續塊。
漏洞出現在join_函數中。該函數用於合並執行前後的state,更新locals和borrow graph。當參數長度和局部變量長度之和大於256時,由於使用u8類型迭代locals,會導致整數溢出。
利用這個溢出可以改變基本塊的state。在存在循環的代碼中,多次執行同一基本塊時,可能訪問到不存在的locals索引,從而引發panic導致節點崩潰。
研究人員提供了一個PoC代碼,通過設置特定的參數和局部變量數量,觸發整數溢出,最終導致panic。
這個漏洞暴露出即使像Move這樣重視安全的語言也可能存在漏洞。建議Move語言設計者在運行時增加更多安全檢查,而不僅僅依賴驗證階段的檢查。同時也說明了代碼審計的重要性。