📢 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语言设计者在运行时增加更多安全检查,而不仅仅依赖验证阶段的检查。同时也说明了代码审计的重要性。