2022年4月23日,成都链安链必应-区块链安全态势感知平台舆情监测显示,NFT项目方Akutar的AkuAuction合约由于智能合约本身漏洞,导致11539ETH被锁死在合约中。成都链安技术团队第一时间对事件进行了分析,结果如下。
成都链安技术团队立刻进行了分析。
漏洞合约:
0xf42c318dbfbaab0eee040279c6a2588fa01a961d
#2?漏洞分析
OpenSea宣布启动Solana Launchpad:金色财经消息,OpenSea官方发布博客称,在OpenSea上正式启动Solana Launchpad。有了这个新的功能,创作者现在可以在OpenSea上从头到尾托管一次NFT铸造活动。创作者现可在OpenSea上浏览所有NFT铸造前活动、社区和支持者的许可名单,以及所有铸造NFT后活动和二次销售。此外,用户Solana 收藏NFT将自动出现在 OpenSea 上,并允许用户自托管 NFT。(opensea.io)[2022/7/19 2:22:22]
Akutar项目的智能合约包含2个漏洞:
Jenny DAO斥资100万美元购入Steve Aoki和3LAU制作的NFT歌曲:去中心化组织Jenny DAO斥资100万美元,购入Steve Aoki和3LAU制作的未发表的NFT歌曲。项目负责人Jae Chung表示,「Jenny DAO成员很高兴Steve Aoki和3LAU合作的第一首歌曲成为了我们的第一件NFT藏品。这件NFT藏品的音乐和视觉均不同凡响,我们很高兴帮助促成了这件作品的诞生。」Jenny DAO是一家所谓的「元宇宙组织」,旨在帮助投资者通过购买部分所有权的方式参与NFT市场。根据其去中心化特质,Jenny DAO成员可以参与资金管理,并决定购买或出售哪些NFT藏品。(Decrypt)[2021/5/19 22:19:12]
3.因此如果此时有攻击者在队列中进行退款操作,调用call退款给攻击者时,攻击者在fallback中进行进行恶意的revert则会导致退款队列卡在攻击者这里,从而导致队列后面的所有人都无法进行退款。
Filecoin Launchpad将在周五前应用:Filecoin创始人胡安·贝内特在Filecoin大矿工测试竞赛启动仪式上宣布,Filecoin Launchpad将会在周五之前应用。
该Launchpad是由Tachyon提供技术支持,Tachyon是早期区块链和Web3.0初创项目的加速器。(哔哔News)[2020/8/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.在合约设计和实现时,注意代码实现的正确性,项目上线前,可选择专业的安全审计公司进行全面的安全审计,规避安全风险。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。