Move语言引用安全检查存在整数溢出漏洞 可能导致拒绝服务攻击

robot
摘要生成中

Move语言中发现新的整数溢出漏洞

近期,一个Move语言中的新整数溢出漏洞被发现。这个漏洞存在于代码验证阶段的引用安全检查过程中,可能导致拒绝服务攻击。

Move语言在执行字节码前会进行代码验证,分为四个步骤。本次漏洞出现在引用安全(reference_safety)步骤中。引用安全检查主要验证代码中是否存在悬空引用、可变引用访问是否安全、全局存储引用访问是否安全等问题。

Numen Cyber独家发现move语言又一高危漏洞

验证过程中,会对每个基本块进行分析。基本块是指除入口和出口外没有分支指令的代码序列。Move通过遍历字节码,查找分支和循环指令来识别基本块。

Numen Cyber独家发现move语言又一高危漏洞

引用安全检查模块会扫描函数中各基本块的字节码指令,判断引用操作是否合法。主要流程包括:执行基本块代码,生成执行后状态,将执行前后状态合并更新块状态,并传播到后续块。

Numen Cyber独家发现move语言又一高危漏洞

漏洞出现在合并状态的过程中。当函数参数数量和局部变量数量之和超过256时,由于使用u8类型存储,会发生整数溢出。这导致在后续执行中访问不存在的局部变量,从而引发panic。

Numen Cyber独家发现move语言又一高危漏洞

攻击者可以构造一个循环的基本块,利用这个溢出改变块的状态。当再次执行时,访问不存在的局部变量索引就会导致拒绝服务。

Numen Cyber独家发现move语言又一高危漏洞

这个漏洞反映出即使是经过严格设计的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语言又一高危漏洞

Numen Cyber独家发现move语言又一高危漏洞

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 分享
评论
0/400
空投自由人vip
· 20小时前
漏洞够严重的啊
回复0
假装在认真vip
· 20小时前
代码为王 检查为上
回复0
NFT悔恨录vip
· 20小时前
得紧急修复漏洞啊
回复0
DeFi工程师Jackvip
· 20小时前
*sigh* 微不足道的u8溢出问题
查看原文回复0
寒冬取暖喵vip
· 20小时前
难怪盘子不稳
回复0
分叉小王子vip
· 20小时前
溢出漏洞很致命啊
回复0
DeFiAlchemistvip
· 20小时前
数字揭示神秘的缺陷。
查看原文回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)