🎉 #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 联合推广任务上线!
本次活动总奖池:1,250 枚 ES
任务目标:推广 Eclipse($ES)Launchpool 和 Alpha 第11期 $ES 专场
📄 详情参考:
Launchpool 公告:https://www.gate.com/zh/announcements/article/46134
Alpha 第11期公告:https://www.gate.com/zh/announcements/article/46137
🧩【任务内容】
请围绕 Launchpool 和 Alpha 第11期 活动进行内容创作,并晒出参与截图。
📸【参与方式】
1️⃣ 带上Tag #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 发帖
2️⃣ 晒出以下任一截图:
Launchpool 质押截图(BTC / ETH / ES)
Alpha 交易页面截图(交易 ES)
3️⃣ 发布图文内容,可参考以下方向(≥60字):
简介 ES/Eclipse 项目亮点、代币机制等基本信息
分享你对 ES 项目的观点、前景判断、挖矿体验等
分析 Launchpool 挖矿 或 Alpha 积分玩法的策略和收益对比
🎁【奖励说明】
评选内容质量最优的 10 位 Launchpool/Gate
Move语言引用安全机制发现整数溢出漏洞 影响AptosMoveEVM
Move语言引用安全机制中发现新的整数溢出漏洞
近期,安全研究人员在深入分析Aptos MoveEVM时发现了一个新的整数溢出漏洞。这个漏洞存在于Move语言的引用安全验证过程中,具体位于reference_safety步骤。
Move语言在执行字节码前会进行代码单元验证,分为4个步骤。引用安全验证是其中的一个重要环节,主要用于确保没有悬空引用、对可变引用的访问是安全的、对全局存储引用的访问是安全的等。
引用安全验证的核心是分析每个函数中的基本块。基本块是指除入口和出口外没有分支指令的代码序列。Move通过遍历字节码、查找所有分支指令和循环指令来确定基本块。
验证过程使用AbstractState结构体来表示状态,包含borrow graph和locals两部分。验证时会执行基本块代码生成post state,然后与pre state合并更新块状态,并传播到后续块。这个过程类似V8 turbofan中的Sea of Nodes思想。
漏洞出现在join_函数中。当函数参数长度与局部变量长度之和大于256时,由于使用u8类型迭代local,会导致整数溢出。虽然Move有校验locals个数的过程,但只校验了locals而未包括参数length。
利用这个漏洞,攻击者可以构造一个循环代码块,利用溢出改变块的state。当再次执行时,如果指令需要访问的索引在新的locals map中不存在,就会导致DoS。
这个漏洞再次说明了即使是Move这样重视安全的语言也可能存在问题。建议Move语言设计者在运行时增加更多检查,而不仅仅依赖验证阶段的安全检查。同时也提醒开发者代码审计的重要性。