前言
北京时间10月27日晚,以太坊DeFi协议CreamFinance再次遭到攻击,损失高达1.3亿美元。知道创宇区块链安全实验室?第一时间跟踪本次事件并分析。
分析
基础信息
攻击者:0x24354D31bC9D90F62FE5f2454709C32049cf866b
攻击tx:0x0fe2542079644e107cbf13690eb9c2c65963ccb79089ff96bfaf8dced2331c92
OEC上借贷平台Flux与Jswap Finance达成战略合作:据官方消息,OEC上借贷平台Flux与Jswap Finance达成战略合作,Flux将至Jswap铸池交易,Jswap将于7月30日20:00(HKT)开启FLUX的“交易挖矿”、“挖矿LP”,为Flux提供全面的一站式流动性服务。
据悉,Flux是由ZeroOne团队打造的去中心化、非托管的加密资产抵押借贷协议。
Jswap是一个去中心化交易与理财协议,支持交易挖矿、流动性挖矿、DAO分红池、推广返佣、行情查询等功能。[2021/7/30 1:25:11]
攻击合约1:0x961D2B694D9097f35cfFfa363eF98823928a330d
火币已开放DeFi项目 JST充提:据官方消息,火币全球站已于8月11日13:30开放DeFi项目JST (JUST) 的充提,并将于13:50上线JST (JUST) ,并开放JST/USDT,JST/BTC,JST/ETH币币交易。[2020/8/11]
攻击合约2:0xf701426b8126BC60530574CEcDCb365D47973284
流程
1、攻击者调用攻击合约1?0x961D?的?0x67c354b5?函数启动整个攻击流程,首先通过MakerDAO闪电贷借来500MDAI,然后质押兑换成yDAI,将yDAI在CurveySwap中添加流动性获得ySwapToken凭证,再用于质押兑换成yUSD,最后在Cream中存入yUSD获得凭证crYUSD;
BiKi上线项目JST持续上涨 当前涨幅29.62%:据BiKi行情显示,JST当前涨幅29.62%,现报价0.0084U。截至目前,JST自上线以来涨幅达3.15倍,BiKi平台JST交易量第一。
JST的目标是建立?一个公平的去中心化金融系统,为全球所有用户提供稳定币借贷和治理机制。JST是双代币系统。USDJ,是一个与美元1:1锚定的稳定币,通过在JST的CDP借贷平台抵押TRX生成。JST是USDJ货币体系的一部分。持有JST可以参与社区公平治理,并在公平制度下支付CDP借款的稳定费。[2020/5/12]
2、随后攻击合约1?0x961D?调用攻击合约2?0xf701?的?flashLoanAAVE()?函数,先通过AAVE闪电贷借来524102WETH,其中6000WETH转给攻击合约1?0x961D,剩下WETH存入Cream获得crETH。随后三次从Cream借出446758198yUSD,前两次借出后再次存入Cream获得crYUSD并转给攻击合约1?0x961D,第三次直接将借出的yUSD转给攻击合约1?0x961D,用于后面赎回;
3、flashLoanAAVE()?函数紧接着调用攻击合约1?0x961D?的?0x0ed1ecb1?函数,通过UniswapV3和Curve完成WETH=>USDC=>DUSD的兑换,通过YVaultPeak合约用383317DUSD赎回了3022172yUSD,加上第二步攻击合约2?0xf701?转来的446758198yUSD,在ySwap中赎回约450228633ySwapToken凭证。并将其全部转给yUSD合约,导致Cream协议对抵押资产yUSD的价值计算剧增,最后借出大量ETH、CRETH2、xSUSHI等共15种资产,其中ETH转给攻击合约2?0xf701?用于归还闪电贷;
4、最后赎回各资产成DAI,归还闪电贷。
细节
此次攻击的核心代码原因在于PriceOracleProxy喂价合约对抵押资产的价值计算出现问题,价格因子pricePerShare通过简单的资产数额占比来动态定价,而这种方式容易受到闪电贷的大额资产操控。
此次攻击的成因是多维度的,同样也反映出其他很多问题,比如Cream协议允许yUSD的重复循环地存入和借出、ySwap的凭证可直接转给yUSD等等。
总结
CreamFinance遭遇的闪电贷攻击的核心原因在于对抵押物价值的计算易被操控,使得攻击者通过闪电贷的巨额资金抬高了抵押物的价格,而超额借出了Cream金库的资产。
近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。