北京时间2022年3月17日,我们的系统监控到涉及APECoin的可疑交易,根据twitter用户WillSheehan的报告,套利机器人通过闪电贷薅羊毛,拿到6W多APECoin。
我们经过分析后,发现这和APECoin的空投机制存在漏洞有关。具体来说,APECoin决定能否空投取决于某一个用户是否持有BYACNFT的瞬时状态,而这个瞬时状态攻击者是可以通过借入闪电贷然后redeem获得BYACNFT来操纵的。攻击者首先通过闪电贷借入BYACToken,然后redeem获得BYACNFT。然后使用这一些NFT来claim空投的APE,最后将BYACNFTmint获得BYACToken用来返还闪电贷。我们认为这个模式同基于闪电贷的价格操纵攻击非常类似。
Kusama目前拍卖众筹已锁定约20.87万KSM:subscan数据显示,Kusama第三次平行链插槽拍卖众筹已锁定约208,704KSM。当前锁定数量前三的分别是Shiden 10万KSM、Bifrost 3.017万KSM以及Khala Network 3.016万KSM。[2021/7/1 0:19:32]
接下来,我们使用一个攻击交易(https://versatile.blocksecteam.com/tx/eth/0xeb8c3bebed11e2e4fcd30cbfc2fb3c55c4ca166003c7f7d319e78eaab9747098)来简述整个过程。
已有超50万枚KSM被众贷锁定:Kusama平行链插槽拍卖目前已经锁定502570枚KSM。其中,超35万枚KSM投票给Karura,7.5万枚KSM投票给Moonriver,6.3万枚KSM投票给Shiden。[2021/6/14 23:35:33]
StepI:攻击准备
攻击者购买了编号1060的BYACNFT并且转移给攻击合约。这个NFT是攻击者花了106ETH在公开市场购买的。
Karura众贷已筹集到超20万枚KSM:6月10日,Acala先行网Karura网站显示,目前共有7228人参与了Karura的众贷,共筹集到201163枚KSM。[2021/6/10 23:26:28]
StepII:借入闪电贷并且redeem成BYACNFT
火币推出200万DOT/4万KSM锁仓挖矿活动:据官方消息,12月14日,火币全球站推出“DOT&KSM锁仓挖矿”活动。2020年12月14日至2021年1月23日(40天)期间,用户在火币锁仓DOT即可参与,链上质押奖励将全额返给用户,奖励为DOT本币。
活动结束后28日即2021年2月20日解锁,个人最低锁仓10DOT、最高锁仓5万DOT,总锁仓上限额为200万DOT。详情见官网公告。[2020/12/14 15:09:57]
攻击者通过闪电贷借入大量的BYACToken。在这个过程中,攻击者通过redeemBYACtoken获得了5个BYACNFT。
StepIII:通过BYACNFT领取空投奖励
在这个过程中,攻击者使用了6个NFT来领取空投。1060是其购买,其余5个是在上一步获得。通过空投,攻击者共计获得60,564APEtokens奖励。
StepIV:mintBYACNFT获得BYACToken
攻击者需要归还借出的BYACToken。因此它将获得BYACNFTmint获得BYACToken。这个过程中,他还将其自己的编号为1060NFT也进行了mint。这是因为需要额外的BYACToken来支付闪电贷的手续费。然后将还完手续费后的BYACToken卖出获得14ETH。
获利
攻击者获得60,564APEtoken,价值50W美金。其攻击成本为1060NFT减去售卖BYACToken得到的14ETH。
Lessons
我们认为问题根源在于APE的空投只考虑瞬时状态。而这个假定是非常脆弱的,很容易被攻击者操控。如果攻击者操控状态的成本小于获得的APE空投的奖励,那么就会创造一个实际的攻击机会。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。