freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

大意失荆州-Akutar合约漏洞导致34M美元资金永久被锁
2022-04-24 14:34:42
所属地 海外

2022年4月23日消息,NFT项目方Akutar的AkuAuction合约由于智能合约本身存在的漏洞,导致11539ETH(价值约3400万美元)被永久锁死在合约中,项目方也无法将其从合约中提取出来。

1650781793_6264ee6114eb7772004fa.png!small

SharkTeam第一时间对此事件进行了技术分析和资金流向分析,并总结了安全防范手段,希望后续的区块链项目可以引以为戒,共筑区块链行业的安全防线。

一、 漏洞分析

漏洞合约地址:0xF42c318dbfBaab0EEE040279C6a2588Fa01a961d

首先,我们需要了解一下AkuAuction合约中提款的逻辑,项目方的提款函数如下:

1650781829_6264ee85d7f2ebd7d6b00.png!small

这里,存在3个校验,如下:

第一个是时间校验,即提款必须在所有的拍卖进程完成后进行。

第二个是退款校验,即提款只能在所有用户都完成退款后才可以提款。

第三个是空投校验,即空投全部完成后才可以提款。

这3个校验的目的是在合约层面限制项目方的提款权限,保证用户的权益,提高项目的可信程度。这3个校验带来的应该是安全可信的,为什么会出现代币锁死而无法提取的情况呢?原因就在于第2个校验在实现时存在错误,无法达到预期的目标,如下:

1650781859_6264eea32a7b9346408e9.png!small

这里,refundProgress指处理的退款数量,即退款账户的数量,退款处理函数 processRefunds代码如下:

1650781887_6264eebfb38d0f0f1e6cc.png!small

从该函数中,我们可以看到,refundProgress的比较对象应该是bidIndex,这里的bidIndex指的是投标账户的总数,在bid函数中,每当有一个账户投标,bitIndex就会加1,且不会重复,代码如下:

1650781917_6264eeddbdf63da7c4007.png!small

1650781940_6264eef458f4a4fc6d0b8.png!small

在claimProjectFunds函数中,退款校验比较的却是refundProgress >= totalBids,这里的totalBids不是投标账户的总数,而是所有用户总投标的NFT总数,如果1个账户只能投标1个NFT,该比较在数量上不会有问题。实际上在bid函数中,1个用户可以投标多个NFT,代码如下:

1650781967_6264ef0fd2fb07fa39592.png!small

因此,实际的totalBids >= bitIndex。当有用户投标2个及以上的NFT时,totalBids > bitIndex。当所有用户都完成退款时,refundProgress == bitIndex < totalBids,因此,代码中的退款校验是永远通过不来的,claimProjectFunds函数一直无法正常执行,资产只能锁死在合约中。

另外,在退款处理函数processRefunds中,还存在另外一个漏洞,代码如下:

1650781998_6264ef2ed7a1d6acdc652.png!small

在循环调用的过程中,使用call函数进行退款,并检验其结果,若结果为false,则回滚。该逻辑容易引起拒绝服务攻击,即只要循环中有一次退款不成功,那么退款处理函数就会一直回滚,拒绝服务。

二、安全建议

针对本次事件中的安全漏洞,我们提出以下建议:

(1)对于开发者,要思维逻辑严谨,并且要具备基本的安全性意识,在项目开发过程中, 保证代码逻辑缜密并与实际逻辑相符,尽量避免一下基本的逻辑和语言层面的安全问题。

(2)项目在测试过程中,要尽可能的全面,尤其是业务逻辑方面。

(3)推荐项目方选择审计单位对项目进行审计后再上线,进一步提高项目的安全性,规避一些安全风险。

通付盾链上安全团队(SharkTeam)是领先的区块链安全服务团队,精通区块链和智能合约底层原理,为开发者提供合约审计和应急响应服务,合约审计包含近200项审计内容,覆盖高级语言层、虚拟机层、区块链层和业务逻辑层,全面保障智能合约安全。

Website: https://www.sharkteam.org/

Telegram: https://t.me/sharkteamorg

Twitter:https://twitter.com/sharkteamorg

更多区块链安全咨询与分析,点击下方链接查看

D查查|链上风险核查 https://m.chainaegis.com/

# 区块链安全 # 智能合约
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者