作者:Kong,慢雾安全团队
据慢雾消息,2021年10月27日,CreamFinance?再次遭受攻击,损失约1.3亿美金,慢雾安全团队第一时间介入分析,并将简要分析分享如下。
攻击核心
本次攻击的核心在于利用Cream借贷池对抵押物价格获取的缺陷,恶意操控拉高了其抵押物的价格,使得攻击者可以从Cream借贷池借出更多的代币。
攻击细节
首先攻击者从DssFlash中闪电贷借出5亿个DAI,随后将借出的5亿个DAI抵押至yearn的yDAI池中,以获得约4.5亿个yDAI凭证。
随后攻击者将获得的yDAI代币在Curve的yDAI/yUSDC/yUSDT/yTUSD池子中进行单币流动性添加,以获得相应的流动性凭证。紧接着攻击者就将获得的凭证抵押到yvWBTC池子中以获得yUSD凭证,为后续在CreamcrYUSD借贷池中抵押做准备。
慢雾余弦:将以太坊NFT迁移至比特币网络的做法有去无回:6月8日消息,针对比特币 NFT 市场 Ordinals Market 新上线将以太坊 NFT 迁移至比特币网络的功能,慢雾创始人余弦发推评论称,将以太坊 NFT 带到比特币的做法是有去无回的,至少对于目前主流 NFT 来说,用户把以太坊 NFT 丢进黑洞地址,然后 Ordinals Market 在比特币网络上刻一份 JSON 数据,这种类型的不管是 BRC-20,还是现在的 BRC-721E,在比特币网络上的算账方式都是中心化需要额外共识。[2023/6/8 21:24:19]
之后攻击者开始向Cream的crYUSD借贷池中抵押其获得yUSD凭证,为了扩大其抵押规模,攻击者从AAVE闪电贷借出约52.4万个WETH,并将其抵押到Cream的crETH池子中。
慢雾:Equalizer Finance被黑主要在于FlashLoanProvider合约与Vault合约不兼容:据慢雾区消息,6 月 7 日,Equalizer Finance 遭受闪电贷攻击。慢雾安全团队以简讯形式将攻击原理分享如下:
1. Equalizer Finance 存在 FlashLoanProvider 与 Vault 合约,FlashLoanProvider 合约提供闪电贷服务,用户通过调用 flashLoan 函数即可通过 FlashLoanProvider 合约从 Vault 合约中借取资金,Vault 合约的资金来源于用户提供的流动性。
2. 用户可以通过 Vault 合约的 provideLiquidity/removeLiquidity 函数进行流动性提供/移除,流动性提供获得的凭证与流动性移除获得的资金都受 Vault 合约中的流动性余额与流动性凭证总供应量的比值影响。
3. 以 WBNB Vault 为例攻击者首先从 PancekeSwap 闪电贷借出 WBNB
4. 通过 FlashLoanProvider 合约进行二次 WBNB 闪电贷操作,FlashLoanProvider 会先将 WBNB Vault 合约中 WBNB 流动性转给攻击者,随后进行闪电贷回调。
5. 攻击者在二次闪电贷回调中,向 WBNB Vault 提供流动性,由于此时 WBNB Vault 中的流动性已经借出一部分给攻击者,因此流动性余额少于预期,则攻击者所能获取的流动性凭证将多于预期。
6. 攻击者先归还二次闪电贷,然后从 WBNB Vault 中移除流动性,此时由于 WBNB Vault 中的流动性已恢复正常,因此攻击者使用添加流动性获得凭证所取出的流动性数量将多于预期。
7. 攻击者通过以上方式攻击了在各个链上的 Vault 合约,耗尽了 Equalizer Finance 的流动性。
此次攻击的主要原因在于 Equalizer Finance 协议的 FlashLoanProvider 合约与 Vault 合约不兼容。慢雾安全团队建议协议在进行实际实现时应充分考虑各个模块间的兼容性。[2022/6/8 4:09:22]
攻击者通过在crETH池子中抵押大量ETH,来使得其有足够的借贷能力将crYUSD池子中的yUSD全部借出并重复抵押到crYUSD池子中,随后通过在crYUSD池子中进行循环贷以杠杆的形式扩大了本身在crYUSD池子中yUSD的抵押规模,为后续操控价格获利做准备。
EOS挖矿项目DMD.finance已通过慢雾审计 代码无已知漏洞:EOS上的质押类挖矿项目DMD.finance已经通过安全公司慢雾审计,综合评估合约代码无已知漏洞,目前3个代币池的合约账号权限为多签管理,项目方无法单方面更新合约。目前DMD.finance支持EOS、USDT、OGX、BOX质押挖矿。[2020/9/6]
随后为了获得yDAI/yUSDC/yUSDT/yTUSD4Pool凭证以操控价格,攻击者用约1,873个ETH从UniswapV3中兑换出约745万个USDC,并通过Curve3Pool将其兑换成DUSD代币约338万个。
接下来攻击者通过获得的DUSD代币从YVaultPeak中赎回yDAI/yUSDC/yUSDT/yTUSD4Pool凭证,并利用此凭证从yUSD(yvWBTC)池子中取回yDAI/yUSDC/yUSDT/yTUSD代币。
动态 | 慢雾预警:警惕新型“交易排挤攻击”:根据慢雾威胁情报分析系统分析,今日凌晨,EOS.WIN 遭遇黑客攻击。EOS.WIN 的攻击者 loveforlover 采用的是新型攻击手法,为“交易排挤攻击”,这种攻击手法与之前攻击 bocai.game 的攻击手法为同一种攻击手法。攻击者首先是使用 loveforlover 发起正常的转账交易,然后使用另一个合约帐号检测中奖行为。如果不中奖,则发起大量的 defer 交易,将项目方的开奖交易“挤”到下一个区块中,此次攻击源于项目方的随机数算法使用了时间种子,使攻击者提升了中奖几率,导致攻击成功。截止发文前,EOS.WIN 项目方仍未进行合约升级。慢雾安全团队在此建议所有的项目方和开发者不要在随机数算法内加入时间种子,防止被恶意攻击。[2019/1/11]
随后攻击者开始进行此次攻击的关键操作,其将约843万个yDAI/yUSDC/yUSDT/yTUSD代币直接转回yUSD池子中,由于其不是通过正常抵押操作进行抵押的,所以这843万个yDAI/yUSDC/yUSDT/yTUSD代币并没有被单独记账,而是直接分散给了yDAI/yUSDC/yUSDT/yTUSD凭证的持有者,这相当于直接拉高了其share的价格。
在crToken中由于其抵押物价格被恶意拉高了,因此攻击者抵押的大量yUSD可以使其借出更多的资金,最后攻击者将Cream的其他15个池子全部借空。接下来我们跟进Cream的crToken借贷池中具体借贷逻辑。
从cToken合约中我们可以看到,主要借贷检查在borrowAllowed函数中:
我们跟进borrowAllowed函数,可以看到在427行,其会根据getHypotheticalAccountLiquidityInternal函数检查实时状态下的该账户所对应的所有cToken的资产价值总和和借贷的资产价值总和,并通过对比cToken的资产价值和借贷的Token价值和,来判断用户是否还可以继续借贷。
我们跟进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转入抵押物就可以很容易的拉高单个share价格,最终使得Cream借贷池中抵押物可以借出更多的资金。
附:前两次CreamFinance被黑分析回顾
慢雾:CreamFinance被黑简要分析
王者开局偶遇猪队友——简析AlphaFinance&Cream被黑
图源:麦迪微博当看到麦迪在其全平台近1700万粉丝宣称,“与Arche一起,可以让这些经典高光时刻在元宇宙中得到永生.
1900/1/1 0:00:00链捕手消息,LDCapital宣布成立1亿美元Metaverse生态基金「MetaFund」,同时将持续注入所投Metaverse项目的收益资产,预计总规模超过5亿美元.
1900/1/1 0:00:00链捕手消息,波卡生态DeFi平行链ParallelFinance宣布完成新一轮战略融资,本轮融资由红杉资本和FoundersFund领投.
1900/1/1 0:00:00链捕手消息,GameFi元宇宙项目DeHorizon宣布将于12月10日推出其治理TokenDEVT.
1900/1/1 0:00:00链捕手消息,Solana生态借贷协议Solend发文宣布完成650万美元融资,Polychain、Dragonfly、Race、CoinbaseVentures、SolanaVentures、A.
1900/1/1 0:00:00作者:FlorianStrauf翻译:GlendonMao「Tokenomics」一词是代币和经济学的混合体,其含义与经济学相当相似。代币经济学研究人们如何与代币互动.
1900/1/1 0:00:00