okx

世链NFT|慢雾:Akutars资金锁定事件简析

时间:2023-06-27|浏览:221

MLB退役球员Micah Johnson创建的NFT项目Akutars拍卖合约存在多个代码缺陷,导致11539.5枚ETH无法取出。以下为慢雾安全团队的分析:

1. Akutars拍卖合约中有bid和processRefunds功能,用户可以进行拍卖出价和退款操作。

2. 在拍卖结束后,如果发起processRefunds退款操作,拍卖合约将遍历出价用户,并使用低级调用call为用户进行退款,但并没有限制这次调用的gasLimit。没有设置gasLimit的情况下,拍卖合约将使用发起者的全部gas进行外部调用。

3. 由于Akutars拍卖合约不限制合约参与拍卖,恶意用户可以使用合约参与拍卖,并在合约的接收以太函数中添加恶意消耗gas的逻辑。当进行退款流程时,触发该用户合约会恶意消耗调用发起者的全部gas,导致后续退款无法正常进行。

4. 幸运的是,这个恶意用户只是做了风险验证测试,并解除了恶意消耗gas的逻辑,使得退款可以继续顺利进行。当然,用户也可以在拍卖结束后的3天内进行紧急退款。

5. 在用户退款完成后,项目方可以通过claimProjectFunds功能提取合约中的拍卖所得。但拍卖合约在用户进行bid时使用totalBids和bidIndex记录用户的拍卖数量和出价次数。用户可以在一次出价中任意选择拍卖数量,因此在拍卖结束时,totalBids实际上会大于bidIndex。目前totalBids为5495,而bidIndex只有3669。

6. 但在claimProjectFunds函数中,却要求refundProgress退款数必须大于等于totalBids。项目方本意应为确保所有用户完成退款后才能取款。但实际上,refundProgress是根据出价人总数计算的,即使全部退款完成,refundProgress也只会等于bidIndex。这就导致refundProgress永远不会大于totalBids,最终导致合约中的11539.5枚ETH永远无法取出。

综上所述,即使用户无法退款的问题得到解决,由于出价人数和拍卖数量的计数不一致以及项目方取款函数的缺陷,Akutars的资金将被永久锁住。

文章来源:慢雾科技

热点:NFT nft项目 项目

欧易

欧易(OKX)

用戶喜愛的交易所

币安

币安(Binance)

已有账号登陆后会弹出下载

« 上一条| 下一条 »
区块链交流群
数藏交流群

合作伙伴

非小号交易所排名-专业的交易行情资讯门户网站,提供区块链比特币行情查询、比特币价格、比特币钱包、比特币智能合约、比特币量化交易策略分析,狗狗币以太坊以太币玩客币雷达币波场环保币柚子币莱特币瑞波币公信宝等虚拟加密电子数字货币价格查询汇率换算,币看比特儿火币网币安网欧易虎符抹茶XMEX合约交易所APP,比特币挖矿金色财经巴比特范非小号资讯平台。
非小号行情 yonghaoka.cn 飞鸟用好卡 ©2020-2024版权所有 桂ICP备18005582号-1