慢雾分析Cream被盗1.3亿美金始末:利用借贷池缺陷,恶意操控价格

作者: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借贷池中抵押做准备。

霍比特HBTC入驻慢雾区,发布安全漏洞与威胁情报赏金计划:据霍比特HBTC官方消息,为了进一步保障用户资产安全提高平台安全风控等级,霍比特HBTC现已入驻慢雾区,并发布安全漏洞与威胁情报赏金计划。严重漏洞最高奖励 $10,000 等值 HBC及512慢雾币。本次漏洞赏金主要针对霍比特 HBTC 网站及 App。

霍比特HBTC长久以来一直重视平台安全,且与慢雾科技在数字货币行业中的底层公链安全研究、链上数据分析、威胁情报同步、OTC 反(AML)等多个环节,始终保持着密切合作。霍比特HBTC旨在为用户打造一个安全、稳定、高效、便捷的交易平台环境。详情见原文链接。[2020/8/17]

之后攻击者开始向Cream的crYUSD借贷池中抵押其获得yUSD凭证,为了扩大其抵押规模,攻击者从AAVE闪电贷借出约52.4万个WETH,并将其抵押到Cream的crETH池子中。

声音 | 慢雾科技余弦:2019年加密货币世界被黑资产价值达44亿美金:安全公司慢雾科技联合创始人余弦在微博上称,我们的一个有趣统计:加密货币世界,已披露的,2019 年之前被黑的资产价值有41亿美金,而 2019 年一年就有44亿美金,增加了一倍多。如果从被黑项目方个数来看,也是增加了一倍多。2019 对于地下黑客来说是个多疯狂的一年。[2020/1/7]

攻击者通过在crETH池子中抵押大量ETH,来使得其有足够的借贷能力将crYUSD池子中的yUSD全部借出并重复抵押到crYUSD池子中,随后通过在crYUSD池子中进行循环贷以杠杆的形式扩大了本身在crYUSD池子中yUSD的抵押规模,为后续操控价格获利做准备。

随后为了获得yDAI/yUSDC/yUSDT/yTUSD4Pool凭证以操控价格,攻击者用约1,873个ETH从UniswapV3中兑换出约745万个USDC,并通过Curve3Pool将其兑换成DUSD代币约338万个。

动态 | 慢雾安全团队:未来伴随攻击成本降低,51%攻击将快速增多:慢雾安全团队对ETC 51%攻击分析后称,鉴于近期区块链资金热度下降导致全网挖矿算力下降,可预见未来伴随攻击成本降低,此类攻击将快速增多。特别建议对当前有获利空间的币种增加风控机制,并公布一批恶意钱包地址及恶意关联地址,其中包括:Gate.io 钱包地址:0x0d0707963952f2fba59dd06f2b425ace40b492fe

Gate.io 给出疑似攻击者所拥有和操纵的 ETC 钱包地址:

0xb71d9CD39b68a08660dCd27B3EAE1c13C1267B10

0x3ccc8f7415e09bead930dc2b23617bd39ced2c06

0x090a4a238db45d9348cb89a356ca5aba89c75256

Bitrue 钱包地址:

0x2c9a81a120d11a4c2db041d4ec377a4c6c401e69

涉及矿工或者大户:

http://gastracker.io/addr/0x090a4a238db45d9348cb89a356ca5aba89c75256

http://gastracker.io/addr/0x07ebd5b21636f089311b1ae720e3c7df026dfd72[2019/1/9]

接下来攻击者通过获得的DUSD代币从YVaultPeak中赎回yDAI/yUSDC/yUSDT/yTUSD4Pool凭证,并利用此凭证从yUSD(yvWBTC)池子中取回yDAI/yUSDC/yUSDT/yTUSD代币。

动态 | 慢雾预警:Electrum钓鱼更新事件预警:据慢雾区消息,此前对Electrum钱包进行攻击的黑客利用Electrum的软件异常构造恶意的软件更新提示,诱导用户更新下载恶意软件使用,慢雾团队提醒用户,如果您使用的Electrum 提示更新请注意仔细核对信息,认准官方网站和软件版本并作签名校验。真实的官方网站和下载链接如下:

github.com/spesmilo/electrum(GitHub的仓库托管代码)、https://electrum.org/(该项目的网站)

假冒的是:github.com/electrum-wallet/electrum/releases

如果您看到以上虚假地址,请忽略它并更改服务器。

此外,慢雾区提醒项目方,可接入 DApp 防火墙免疫此类攻击,阻断攻击者进一步扩大攻击范围。[2018/12/28]

随后攻击者开始进行此次攻击的关键操作,其将约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被黑

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

FTTA16z答卷:VC为何跑步入场Crypto

作者:0x49,区块律动 原标题:《黑猫白猫》 市值2万亿美金之上,是顶级科技巨头的竞争,就在几天前,微软市值超过苹果,成为了这个星球上最有价值的科技公司。每当微软股价新高的时候,有一个故事总是会被人提起.

[0:15ms0-1:272ms