细节分析:DeFi 平台Cream Finance 再遭攻击,1.3 亿美_合约招商_数字货币代理_海外数字货币招商代理_数字货币招商_元宇宙代理加盟

数字货币代理_海外数字货币招商代理_数字货币招商_元宇宙代理加盟
数字货币平台火爆招募数字货币合约代理

细节分析:DeFi 平台Cream Finance 再遭攻击,1.3 亿美

更新时间:2021-10-29 08:42:01点击:55

By:Kong@慢雾安全队

据徐雾区报道,2021年10月27日,Cream Finance再次遭到攻击,损失约1亿3000万美元。 徐雾安全小组首先介入分析,简要分析分享如下。

攻击核心

这次攻击的核心是利用Cream贷款池获得抵押价格的缺陷,恶意操作将提高抵押价格,攻击者可以从Cream贷款池借到更多的代币。

攻击详细信息

首先,攻击者从DssFlash电击出借5亿个DAI,然后将出借的5亿个DAI抵押给yearn的yDAI池,取得约4亿5千万个yDAI证书。

之后,攻击者将得到的yDAI令牌向Curve的yDAI/yUSDC/yUSDT/yTUSD池进行单货币流动性追加,得到适当的流动性证书。 然后,攻击者将取得的证书抵押到yUSD池取得yUSD证书,然后准备在Cream crYUSD贷款池进行抵押。

随后,攻击者开始向Cream的cryUSD贷款池抵押YUSD证书,为了扩大其抵押规模,攻击者从AAVE以电击贷款的方式借贷了约52.4万个WETH,抵押给了Cream的crETH池。

攻击者反复通过向crETH池抵押大量的ETH,拥有足够的贷款能力将crYUSD池的yUSD全部出借并抵押给crYUSD池,之后通过在crYUSD池进行循环贷款作为杠杆抵押给crYUSD池的yUSD

之后,为了获得yDAI/yUSDC/yUSDT/yTUSD 4Pool证书并操纵价格,攻击者用约1,873个ETH从Uniswap V3更换了约745万个USDC,用Curve 3Pool换成了DUSD令牌约38.8

其次,攻击者用获得的DUSD令牌从YVaultPeak赎回yDAI/yUSDC/yUSDT/yTUSD保罗证书,再用这个证书从yUSD池取回yDAI/yUSDC/yUSDT/yTUSD令牌。

随后,攻击者开始了这次攻击的重要操作,将约843万个yDAI/yUSDC/yUSDT/yTUSD令牌直接放回yUSD池。 因为不是通过正常的抵押操作进行抵押的,所以这843万个yDAI/yUSDC/yUSDT/yTUSD令牌没有单独收费,而是直接分散到了yUSD

在crToken,由于抵押价格被恶意上调,攻击者抵押的大量yUSD可以贷出更多的资金,最后攻击者清空了Cream的其他15个池塘。 然后,跟进Cream的crToken贷款池的具体贷款逻辑。

从cToken合同可以看出,主要的贷款检查在borrowAllowed函数中。

跟进borrowAllowed函数后,在427行中,根据gethypotheticalaccountliquidityinternal函数,计算出与实时状态的该账户对应的所有cToken的资产价值总和和贷款的

我们跟进gethypotheticalaccountliquidityinternal函数,就会发现我们对抵押的价值来自886行oracle.getUnderlyingPrice。

跟进预言机的getUnderlyingPrice函数,可以很容易地通过令牌150行的getYvTokenPrice函数进行价格获取。

如果继续跟踪getYvTokenPrice函数,则yvTokenInfo.version为V2,因此将通过yVault的pricePerShare函数获取价格。

跟进pricePerShare后,将直接返回_shareValue作为价格,_shareValue在_totalAssets中除了合同的总share数(self.totalSupply )以外的各个share 因此,攻击者只有通过操作_totalAssets提高价格,才能提高单个share的价格,从而提高攻击者的抵押价值,借出更多的其他令牌。

让我们看看_totalAssets是如何获取的。 从第772行可以看出,_totalAssets是直接取得的当前合同的yDAI/yUSDC/yUSDT/yTUSD令牌数,加上抵押到战略池的资产金额。 因此,攻击者可以通过直接向yUSD合同转移yDAI/yUSDC/yUSDT/yTUSD令牌来提高share价格从而获利。

在Ethtx.info中,可以清晰地看到pricePerShare前后的变化。

最后攻击者在租用其他水池后,将闪电贷还了,获利退场。

总结

这次攻击是典型的电击信贷价格操纵。 由于Cream的贷款池在获取yUSD池的share价格时直接使用pricePerShare接口,因此该接口将合同的抵押余额和战略池抵押资产额除以合计share数来计算单个share的价格。 因此,用户直接向yUSD转账抵押物,可以轻松提高单一的共享价格,最终Cream贷款池的抵押物可以借到更多的资金。

附:前两次Cream Finance通过黑色分析进行了评论

慢雾: Cream Finance用黑色简单分析

官方微信