惊现低级漏洞?简析NFT项目Akutar资金锁定事件_LYG:ISM

2022年4月23日,成都链安链必应-区块链安全态势感知平台舆情监测显示,NFT项目方Akutar的AkuAuction合约由于智能合约本身漏洞,导致11539ETH被锁死在合约中。成都链安技术团队第一时间对事件进行了分析,结果如下。#1事件相关信息

4月23日消息,Solidity开发者foobar发推称,11539ETH被永久锁定在AkuDreams合约中,个人用户或开发团队都无法取出资金。退款处理完成后,将每个出价状态设置为1。因此,用户无法调用emergencyWithdraw()。此外,团队也无法领取资金,基本上等于销毁。

汽车之家联手比特图谱发布“改装星球NFT”:金色财经报道,汽车之家宣布联手比特图谱发布“改装星球NFT”,旨在让数字改装车驶入了现实,首期数字盲盒1100套。据悉此次并非汽车之家首次探索NFT,此前汽车之家也免费向用户发布了7套“818全球汽车节”主题NFT数字藏品。12月底上海国际消费电子技术展上,汽车之家以虚拟IP宫玖羽和改装星球AR数字藏品斩获“杰出科技人气奖”和“杰出科技特别奖——元宇宙探索奖”。[2023/1/4 9:52:39]

成都链安技术团队立刻进行了分析。漏洞合约:0xf42c318dbfbaab0eee040279c6a2588fa01a961d#2漏洞分析

Akutar项目的智能合约包含2个漏洞:漏洞一:

声音 | 网易星球顾费勇:希望能推动“区块链+场景”真正落地:网易星球负责人顾费勇表示,相信在网易星球公测2.0发布的个人数据护照模式上会产生新的商业模式,目前基于区块链并没产生新的商业模式,只是在现有商业模式上重新做分配。阿里和百度布局区块链的做法并不适用于网易,星球的布局,目前一方面是区块链和场景的结合,另一方面就是NBaaS的尝试。[2018/9/17]

1.第一个合约漏洞在processRefunds中,设计者根据refundProgress计数器进行循环退款。2.而这里使用了call函数进行退款操作,且把退款的结果作为require的判定条件。

网易星球推出资讯“挖矿”模式,浏览即可获原力:昨日,网易旗下的首款区块链产品网易星球推出了资讯阅读类任务,用户点击阅读感兴趣的新闻或广告内容时均有机会获得原力。这也是国内首个利用区块链技术的资讯类场景应用,首创利用阅读资讯来引导用户“挖矿”的模式。[2018/4/12]

3.因此如果此时有攻击者在队列中进行退款操作,调用call退款给攻击者时,攻击者在fallback中进行进行恶意的revert则会导致退款队列卡在攻击者这里,从而导致队列后面的所有人都无法进行退款。

网易星球黑钻拍卖活动将于3月27日开启:3月26日晚间,网易星球微信公众号发布消息称,3月27日-30日,网易星球将举办为期4天的拍卖活动,用户可用“黑钻”竞拍由我们提供的各种奖品。据透露,“竞拍”活动将于在3月27日上午10点正式开始,每件商品拍卖1小时。竞拍商品方面,主要由网易严选、网易考拉海购、网易味央、网易云音乐等网易系产品提供。[2018/3/27]

4.这个漏洞被人在链上证明有效,但随后攻击合约便进行了解锁,并没有进行攻击利用,且公开进行了申明。

漏洞二:

该漏洞也是导致价值约3400万美元的ETH资产被锁死在合约中的元凶。1.在claimProjectFunds函数中,该函数主要用于项目方提款。为了避免项目方权限过大,在用户完成提款之前就将合约中的资产全部转走导致用户无法退款,所有的退款操作应全部完成之后项目方才能够提款。业务逻辑设计上来说,是没有问题的。然而,在具体的代码实现中,当前的代码容易受到漏洞一的影响,导致项目方无法提款,不过这只是潜在的风险,本次资金锁死的元凶不是这个原因。2.注意函数中第620行代码:require此处refundProgress表示已经处理了多少个用户的退款,totalBids表示所有用户总投标了多少个NFT。注意由于一个用户可以投标多个NFT,导致单从数值上比较,refundProgress可能小于totalBids。

而再来看看退款函数processRefunds中:require(_refundProgress<_bidIndex);bidIndex表示所有参与竞标的用户,refundProgress永远不会高于bidIndex。

此时来看看bidIndex的值,为3669:

totalBids的值为5495:

3.所以refundProgress>=5495且refundProgress<3669这个判断条件永远不会成立,最终导致项目方团队将永远无法执行后续的提款操作。此处应将refundProgress与bidIndex做对比,开发者犯了一个很低级的错误。最终,导致项目方11539ETH(价值约3400万美元)被锁定无法提取。#3总结

针对本次事件,成都链安技术团队建议:1.开发者应具备基本的安全开发意识,熟悉智能合约开发应注意的安全问题;2.在合约设计和实现时,注意代码实现的正确性,项目上线前,可选择专业的安全审计公司进行全面的安全审计,规避安全风险。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-4:485ms