被盗 1.3 亿美元!Cream Finance今年第五次遭黑客攻击全解析
10月27日, 链必安-区块链安全态势感知平台 舆情监测显示,DeFi借贷协议 Cream Finance 再次遭受攻击,损失达1.3亿美元。被盗的资金主要是CreamLP代币和其他ERC-20代币。关于本次攻击,成都链安技术团队第一时间进行了事件分析。
#1 事件概览
攻击如何发生 Event overview
被盗约1.3亿美元!Cream Finance今年第五次遭黑客攻击,可能它真的有吸引“渣男”的体质。
10月28日消息,DeFi 协议 Cream Finance 针对闪电贷攻击事件发布回应称,其以太坊 CREAM v1 借贷市场被黑客攻击,攻击者从多个地址转移了价值约 1.3 亿美元的代币,没有其他市场受到影响。团队已经暂停了基于以太坊的 v1 借贷市场,并且正在进行事后审查。
#2 事件具体分析
攻击者如何得手 Event overview
攻击者:
0x24354d31bc9d90f62fe5f2454709c32049cf866b
攻击合约:
0x961d2b694d9097f35cfffa363ef98823928a330d
0xf701426b8126BC60530574CEcDCb365D47973284
交易hash:
0x0fe2542079644e107cbf13690eb9c2c65963ccb79089ff96bfaf8dced2331c92
1. 第一步先通过闪电贷从
DssFlash(0x1eb4cf3a948e7d72a198fe073ccb8c7a948cd853)合约借500,000,000DAI。
2. 把DAI放到yDAI
(0x16de59092dae5ccf4a1e6439d611fd0653f0bd01)合约中进行抵押,换取451,065,927.891934141488397224yDAI。
3. 把换取yDAI代币放到Curve.fi: y Swap
(0x45f783cce6b7ff23b2ab2d70e416cdb7d6055f51)中添加流动性并获取447,202,022.713276945512955672yDAI+yUSDC+yUSDT+yTUSD 。
4. 接着将
447,202,022.713276945512955672yDAI+yUSDC+yUSDT+yTUSD抵押并获取446,756,774.416766306389278551yUSD。
5. 再在crYUSD中调用铸币函数,铸造 22,337,774,341.38713187 个crYUSD代币。
6.攻击合约
A(0x961d2b694d9097f35cfffa363ef98823928a330d)在构造函数里创建了攻击合约
B(0xf701426b8126BC60530574CEcDCb365D47973284),在5之后,攻击合约B从AAVE借贷524,102.159298234706604104 WETH
7.B发送6000WETH给A
8. B将剩余的WETH兑换为ETH,并以此调用crETH池子进行抵押。
9. 使用攻击合约B借出
446,758,198.60513882090167283 个YUSD代币,并以此铸币crYUSD,铸完币后归还,并将crYUSD发送给A,重复两次。
10. 使用攻击合约B借出
446,758,198.60513882090167283个YUSD,发送给A。
11. 使用1,873.933802532388653625 WETH在uniswap v3中交换出7,453,002.766252个USDC。
12. 将3,726,501.383126 个USDC在Curve.fi中交换为DUSD。
13. 将DUSD交换为
450,228,633.135400282653487952 yDAI+yUSDC+yUSDT+yTUSD。
14. 将8,431,514.81679698041016119个 yDAI+yUSDC+yUSDT+yTUSD 直接发送回yUSD抵押池。由于使用直接转账,totalDebt不变,balanceOf(self)变大,导致totalAsset变大,最终影响到oracle预言机的价格获取pricePerShare变大,即可以通过抵押yUSD借出更多的代币。
15. 以yUSD代币为抵押,借出cream 协议所有支持借贷的代币。
16. 最后归还攻击A合约的闪电贷。
#3 事件复盘
我们需要注意什么 Case Review
本次攻击是典型的闪电贷进行价格操作,通过闪电贷获取大量资金后,利用合约设计缺陷,大幅改变价格导致获利。 Cream的预言机价格计算使用与yUSD的totalAsset有关。向yUSD合约直接转账时,不会更新Debt,从而使totalAsset增大,从而使得yUSD价格变高,可以从Cream中借出更多的资金。
注意
此前,Cream Finance已经至少遭到黑客的四次攻击,这次攻击也使得该项目成为黑客成功攻击次数最多的DeFi项目。
今年2月13日,黑客利用Alpha Homora V2技术漏洞从Cream Finance旗下零抵押跨协议贷款功能 Iron Bank借出ETH、DAI、USDC等资产,导致该项目损失约3800万美元。此后Alpha Finance表示将全额赔付资产。
同月28日,DeFi聚合平台Furucombo遭到严重漏洞攻击,Cream Finance 储备金账户受影响,Cream Finance 团队随即撤销了所有对外部合约的批准,但仍损失 110 万美元。
3月15日,Cream Finance 域名遭到黑客攻击,部分用户会看到网站发起输入助记词的请求,很快该项目官方发推提醒用户不要输入助记词,表示其智能合约和用户资金仍然安全,并在1个小时后宣布重新获得域名所有权。
8月30日,Cream Finance 因可重入漏洞遭遇闪电贷攻击,黑客获利4.2亿个AMP、1308个ETH以及少量USDC等稳定币资产,总资产价值超过3400万美元。
加上本次攻击事件,Cream Finance 可以说是年度最“衰”的DeFi项目。