📢 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语言引用安全模块存在整数溢出漏洞
近期,一个严重的整数溢出漏洞被发现存在于Move语言的引用安全模块中。这个漏洞可能导致拒绝服务攻击,对Move语言的安全性构成了潜在威胁。
Move语言在执行字节码前会进行代码验证,分为多个步骤。这个漏洞出现在reference_safety步骤中,该步骤负责验证引用的安全性,包括检查是否存在悬空引用、可变引用访问是否安全等。
漏洞的根源在于引用安全模块中的一个整数溢出问题。当函数参数数量和局部变量数量之和超过256时,由于使用了u8类型来迭代局部变量,会导致整数溢出。这个溢出可能被利用来绕过安全检查,最终造成拒绝服务攻击。
具体来说,漏洞利用过程如下:
构造一个包含循环的Move代码块,使其多次执行。
设置大量的函数参数和局部变量,使其总和超过256。
在第一次执行时,由于整数溢出,新的locals map长度会变为一个很小的值。
在后续执行时,尝试访问不存在的局部变量索引,导致panic和程序崩溃。
这个漏洞暴露出即使是像Move这样注重安全的语言,也可能存在被忽视的安全隐患。它提醒我们代码审计的重要性,以及在语言设计中需要更全面的安全考虑。
对于Move语言的使用者和开发者来说,建议密切关注官方的安全更新。同时,在编写Move代码时也要注意控制函数参数和局部变量的数量,避免触发这类边界情况。
从更宏观的角度看,这个漏洞也反映出仅依赖静态验证可能不足以保证完全的安全性。未来Move语言可能需要在运行时增加更多的动态检查,以防止类似的安全问题。
总的来说,这个漏洞的发现再次证明了持续的安全研究对于提升区块链技术安全性的重要性。随着Move语言在Web3领域的应用不断扩大,我们期待看到更多的安全改进措施被引入,以构建一个更加健壮和可靠的智能合约生态系统。