POOL:一次由存储状态引发的惨案 Cover协议被黑简要分析_ZET

By:??慢雾安全团队

据慢雾区情报,2020年12月29日,Cover协议价格暴跌。慢雾安全团队第一时间跟进相关事件并进行分析,以下为分析简略过程。

攻击流程简析

1、在Cover协议的Blacksmith合约中,用户可以通过deposit函数抵押BPT代币;

2、攻击者在第一次进行deposit-withdraw后将通过updatePool函数来更新池子,并使用accRewardsPerToken来记录累计奖励;

Circle联创:新一波比特币ETF可能会获得批准:金色财经报道,Circle联合创始人兼首席执行官Jeremy Allaire在世界经济论坛上接受采访时表示,随着监管机构过去的担忧得到解决,新一波比特币现货ETF将会获得批准。[2023/6/27 22:03:05]

3、之后将通过_claimCoverRewards函数来分配奖励并使用rewardWriteoff参数进行记录;

过去7日GMX的每日平均交易费用超越Uniswap:金色财经报道,据Crypto Fees数据显示,过去7日去中心化衍生品协议GMX每日平均交易费用为883234美元,超过去中心化交易平台Uniswap的每日平均交易费用708789美元。[2023/6/20 21:49:32]

4、在攻击者第一次withdraw后还留有一小部分的BPT进行抵押;

Ki Young Ju:美国加密市场情绪正在复苏:金色财经报道,链上分析公司CryptoQuant联合创始人兼CEO Ki Young Ju在社交媒体上称,美国加密市场情绪正在复苏。自主要加密货币交易所 FTX 倒闭以来,BTC在Coinbase的每小时价格溢价指数首次攀升至绿色区域。\u2028据悉,由于交易所交易量增加,该指数正在上涨,表明购买力回归以及这些大公司开始增持比特币头寸。

截止发稿,BTC暂报17098美元,24小时上涨1.37%。[2022/12/1 21:15:22]

5、此时攻击者将第二次进行deposit,并通过claimRewards提取奖励;

6、问题出在rewardWriteoff的具体计算,在攻击者第二次进行deposit-claimRewards时取的Pool值定义为memory,此时memory中获取的Pool是攻击者第一次withdraw进行updatePool时更新的值;

7、由于memory中获取的Pool值是旧的,其对应记录的accRewardsPerToken也是旧的会赋值到miner;

8、之后再进行新的一次updatePool时,由于攻击者在第一次进行withdraw后池子中的lpTotal已经变小,所以最后获得的accRewardsPerToken将变大;

9、此时攻击者被赋值的accRewardsPerToken是旧的是一个较小值,在进行rewardWriteoff计算时获得的值也将偏小,但攻击者在进行claimRewards时用的却是池子更新后的accRewardsPerToken值;

10、因此在进行具体奖励计算时由于这个新旧参数之前差值,会导致计算出一个偏大的数值;

11、所以最后在根据计算结果给攻击者铸造奖励时就会额外铸造出更多的COVER代币,导致COVER代币增发。

具体accRewardsPerToken参数差值变化如下图:

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

大币网

[0:0ms0-4:235ms