By: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池子中进行单币流动性添加,以获得相应的流动性凭证。紧接着攻击者就将获得的凭证抵押到yUSD池子中以获得yUSD凭证,为后续在CreamcrYUSD借贷池中抵押做准备。
Bidding Pools TVL超8400万美元创历史新高,即将公布Season 2细节:金色财经报道,据Blur官推发布数据,Blur Bidding Pools锁仓量今晨突破8400万美元创下历史新高,大约是Aptos锁仓量的1.5倍,当前小幅回落至8125万美元。此外,Blur还透露Season 2的更多详细信息即将公布。[2023/2/17 12:12:33]
之后攻击者开始向Cream的crYUSD借贷池中抵押其获得yUSD凭证,为了扩大其抵押规模,攻击者从AAVE闪电贷借出约52.4万个WETH,并将其抵押到Cream的crETH池子中。
攻击者通过在crETH池子中抵押大量ETH,来使得其有足够的借贷能力将crYUSD池子中的yUSD全部借出并重复抵押到crYUSD池子中,随后通过在crYUSD池子中进行循环贷以杠杆的形式扩大了本身在crYUSD池子中yUSD的抵押规模,为后续操控价格获利做准备。
黎巴嫩爆炸细节曝光:焊接火花引燃仓库炸药,致另一库房硝酸铵爆炸:据黎巴嫩国际广播集团报道,黎巴嫩最高国防委员会在会议上宣布,贝鲁特爆炸事件是由于易燃易爆品引燃了2000多吨硝酸铵。“前一阵子,在检查仓库时,发现仓库硬件设施急需维护,库门需要加紧。并且要求贝鲁特海港有关部门配备警卫人员,任命仓库负责人,进行仓库维护。”据一份安全报告显示,“工作人员在焊接存有炸药的库房门的过程中,焊接火花引燃了仓库中的炸药,这导致在另一库房中存放的硝酸铵爆炸。(中国日报网)[2020/8/5]
随后为了获得yDAI/yUSDC/yUSDT/yTUSD4Pool凭证以操控价格,攻击者用约1,873个ETH从UniswapV3中兑换出约745万个USDC,并通过Curve3Pool将其兑换成DUSD代币约338万个。
接下来攻击者通过获得的DUSD代币从YVaultPeak中赎回yDAI/yUSDC/yUSDT/yTUSD4Pool凭证,并利用此凭证从yUSD池子中取回yDAI/yUSDC/yUSDT/yTUSD代币。
富士康生产的超安全加密手机细节曝光:据bitcoin.com,关于Sirin Finney的技术细节已经浮出水面,这是一款超安全的移动设备,承诺保密加密货币交易。这款手机将配置一个嵌入式的冷钱包,并将由制造iPhone的同一家公司建造。Sirin Labs已经发布了其“超安全”冷存储加密钱包手机的规范,预计今年晚些时候将会对市场产生影响。去年,该公司由足球巨星梅西助阵推广。富士康国际控股(FIH)将在其设备中嵌入Finny设备,主导手机的原始设计和制造,而Sirin将引领冷钱包硬件和专业操作系统的开发。该平台将以高通Snapdragon 845和128GB内存、6GB RAM和Android 8.1为基础,将配备一个12MPx主相机和8MPx自拍相机和一个“超安全”的指纹传感器。[2018/5/9]
随后攻击者开始进行此次攻击的关键操作,其将约843万个yDAI/yUSDC/yUSDT/yTUSD代币直接转回yUSD池子中,由于其不是通过正常抵押操作进行抵押的,所以这843万个yDAI/yUSDC/yUSDT/yTUSD代币并没有被单独记账,而是直接分散给了yDAI/yUSDC/yUSDT/yTUSD凭证的持有者,这相当于直接拉高了其share的价格。
EOS官方公布投票机制的重要细节:日前,EOS官方发布公告透露了关于前段时间节点投票机制的问题,官方表示在锁仓6个月原则不变下,投票人的代币将以先行方式解锁,一周锁一次。投票人虽然不能对锁仓的投票进行充值和提现,但是这部分的票是可以随时进行改投的。[2018/3/12]
在crToken中由于其抵押物价格被恶意拉高了,因此攻击者抵押的大量yUSD可以使其借出更多的资金,最后攻击者将Cream的其他15个池子全部借空。接下来我们跟进Cream的crToken借贷池中具体借贷逻辑。
从cToken合约中我们可以看到,主要借贷检查在borrowAllowed函数中:
我们跟进borrowAllowed函数,可以看到在427行,其会根据getHypotheticalAccountLiquidityInternal函数检查实时状态下的该账户所对应的所有cToken的资产价值总和和借贷的资产价值总和,并通过对比cToken的资产价值和借贷的Token价值和,来判断用户是否还可以继续借贷。
Coincheck将于今日15:00召开发布会:公布NEM赔偿细节:据路透社消息,日本Coincheck交易所将于今日15:00(北京时间)召开新闻发布会,公布被盗的NEM的赔偿细节。[2018/3/8]
我们跟进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被黑简要分析
标签:USDSHAARESHAREUSDT币ushark AI tokenVRARENA币Basis Dollar Share
来源:新华社记者:彭茜张晓茹原标题:《科普:科技巨头跑步入场“元宇宙”火在哪里》美国社交媒体脸书公司日前宣布,5年内拟在欧盟国家雇用1万名高技能人才打造“元宇宙”.
1900/1/1 0:00:00据Cointelegraph10月15日报道,俄罗斯央行正试图评估当地投资者的比特币持有量,因为在新冠肺炎引发的提款后,大量资金没有返回银行.
1900/1/1 0:00:00据Cointelegraph消息,10月20日,《花花公子》杂志所有者PLBY集团公布了一个新的NFT项目,由11953个独特的3D动画兔子头像组成.
1900/1/1 0:00:00元宇宙见闻原创作者|Eiffer编辑|Chi2021年,一个新奇的概念词汇在网络上急速升温,甚至火出了科技圈和投资圈.
1900/1/1 0:00:00在IC链上开发虽然Motoko可能是最拥有优势的编程语言之一,但是在开发者层面来说Motoko作为新兴编程语言对他们来说是陌生的.
1900/1/1 0:00:00储藏是动物中一种常见的现象,因为大自然已经在动物界的许多代表中烙下收集需求作为生存衡量方式的印记.
1900/1/1 0:00:00