Move語言暴露整數溢出漏洞 節點崩潰風險引關注

Move語言又現高危漏洞:整數溢出可導致節點崩潰

近期,安全研究人員在深入分析Move語言時發現了一個新的整數溢出漏洞,可能導致節點崩潰。這個漏洞存在於Move語言的引用安全驗證模塊中,涉及到基本塊分析和狀態合並過程。

Numen Cyber獨家發現move語言又一高危漏洞

Move語言在執行字節碼前會進行代碼驗證,分爲4個步驟。此次發現的漏洞出現在引用安全(reference_safety)驗證階段。該階段會分析函數中的基本塊,驗證引用操作的合法性。

Numen Cyber獨家發現move語言又一高危漏洞

驗證過程中會維護一個AbstractState結構體,包含局部變量(locals)和借用關係圖(borrow graph)。在分析基本塊時,會執行塊內指令生成post state,然後與pre state合並更新狀態。

Numen Cyber獨家發現move語言又一高危漏洞

漏洞產生於合並狀態的join_函數中。該函數會遍歷locals變量,但locals包含了函數參數和局部變量。當參數數量與局部變量數量之和超過256時,由於使用u8類型迭代,會發生整數溢出。

Numen Cyber獨家發現move語言又一高危漏洞

攻擊者可以構造特殊的循環代碼塊,利用這個溢出改變狀態。在下一輪分析時,某些指令可能訪問不存在的locals索引,從而觸發panic導致節點崩潰。

Numen Cyber獨家發現move語言又一高危漏洞

研究人員提供了一個概念驗證(PoC),通過設置264個locals變量,可以在第二輪分析時觸發panic。這暴露出Move語言在運行時缺乏足夠的安全檢查。

Numen Cyber獨家發現move語言又一高危漏洞

這個漏洞再次說明,即使是強調安全的Move語言也可能存在漏洞。建議Move語言設計者在運行時增加更多安全檢查,而不僅僅依賴於驗證階段的靜態分析。同時也提醒開發者加強代碼審計,避免類似疏忽。

Numen Cyber獨家發現move語言又一高危漏洞

Numen Cyber獨家發現move語言又一高危漏洞

Numen Cyber獨家發現move語言又一高危漏洞

Numen Cyber獨家發現move語言又一高危漏洞

Numen Cyber獨家發現move語言又一高危漏洞

Numen Cyber獨家發現move語言又一高危漏洞

Numen Cyber獨家發現move語言又一高危漏洞

Numen Cyber獨家發現move語言又一高危漏洞

Numen Cyber獨家發現move語言又一高危漏洞

MOVE0.78%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 5
  • 分享
留言
0/400
智能合约恐惧症vip
· 08-02 02:38
move崩完本,原生也崩了
回復0
椰子水男孩vip
· 07-30 03:38
move又翻车了,早该换了
回復0
薛定谔_钱包vip
· 07-30 03:36
move又翻车了啊
回復0
0xDreamChaservip
· 07-30 03:34
move又崩?毕业都不够快
回復0
GasFeeCryvip
· 07-30 03:25
move又又又出事儿啦
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)