🎉 Gate xStocks 交易开启啦,现货、合约、Alpha齐上线!
📝 在Gate广场发帖,晒出你的交易体验或精彩截图,瓜分$1,000大奖池!
🎁 广场优质创作者5名,每人独享$100合约体验券!
🎉 帖文同步分享到X(推特),浏览量前十再得$50奖励!
参与方式:
1️⃣ 关注 @Gate广场_Official
2️⃣ 带 #Gate xStocks 交易体验# ,原创发帖(不少于20字,仅用活动标签)
3️⃣ 若分享到推特,请将链接提交表单:https://www.gate.com/questionnaire/6854
注:表单可多次提交,发布更多帖文可提升获奖机会!
📅 7月3日16:00—7月9日24:00(UTC+8)
详情:https://www.gate.com/announcements/article/45926
每一条体验,都有机会赢取大奖!快在Gate广场show出你的操作吧!
Move语言引用安全模块发现整数溢出漏洞 可导致拒绝服务攻击
Move语言引用安全模块发现新的整数溢出漏洞
最近,研究人员在深入分析Move语言的过程中,发现了一个新的整数溢出漏洞。这个漏洞存在于引用安全模块中,可能导致严重的拒绝服务攻击。本文将对这个漏洞的发现过程和技术细节进行详细介绍。
Move语言的引用安全机制
Move语言借鉴了Rust的思想,支持两种引用类型:不可变引用(&)和可变引用(&mut)。引用安全模块通过扫描函数中的基本块和字节码指令来验证所有引用操作的合法性。
验证过程主要包括以下步骤:
其中,state包含locals和borrow graph两个关键组件,用于确保函数中引用的安全性。
漏洞详情
该漏洞出现在引用安全模块的join_函数中。当函数参数长度和局部变量长度之和大于256时,由于使用u8类型迭代locals,会导致整数溢出。
具体来说:
漏洞利用
利用这个漏洞可以构造一个循环代码块:
这会造成节点崩溃,形成拒绝服务攻击。
漏洞复现
研究人员提供了一个PoC来复现这个漏洞:
总结与建议
这个漏洞说明:
研究人员呼吁Move语言设计者加强运行时安全机制,以防止类似漏洞被利用后造成更严重的问题。