Cointime

扫码下载App
iOS & Android

Hundred Finance攻击事件分析

根据Numen链上监控显示Apr-15-2023 02:12:00 PM +UTC时间,Hundred Finance遭到攻击,损失约600万美金。

攻击交易地址:

https://optimistic.etherscan.io/tx/0x6e9ebcdebbabda04fa9f2e3bc21ea8b2e4fb4bf4f4670cb8483e2f0b2604f451

攻击分析

根据调用栈分析如下:

1.攻击者首先调用aave的flashloan函数借出500wbtc。

2.首先观察到hwbtc没有人来进行借贷,只有很早之前攻击者的操作。

3.攻击者先redeem自己早期存入的wbtc,使hwbtc的totalsupply=0。

4.然后攻击者创建了最小代理合约,存入4个wbtc,根据计算获得200个hwbtc。

5.然后攻击者redeem到只剩2wei个wbtc。

6.此时攻击者创建的合约上有500wbtc和2wei hwbtc。

7.攻击者把500wbtc转入池子,此时的hwbtc价格变高,使其能获得借出大量eth的能力。

8.攻击者借出eth,又因为当前合约的solidity版本0.5.16,在计算时引入了计算库防止溢出,所以在redeemunderlying向下取整,赎回500wbtc只需要1wei hwbtc。

9.攻击者清算自己,通过清算再把hwbtc的totalsupply=0,重复上述操作攻击其它借贷池。

从代码角度分析,合约代码基本fork compound,根本问题是Hundred Finance的wbtc资产没有人来借贷,所以攻击者能控制totalsupply,攻击通过给池子转移资产,用极少的totalsupply对应大量的底层资产,是htoken的价格变高,提升借贷权利。

从和compound的diff看这都是正常逻辑,exchangrate确实变大。

下面这部分计算:

上述代码计算也没有问题。evm没有浮点数,默认向下取整。

所以在赎回的时候本需要2wei hwbtc,经过计算只需要1wei。

攻击的两个主要条件,hwbtc没有产生借贷,攻击者可控totalsupply,第二个条件就是上述说明的计算问题。

总结

此次事件的根本原因是 hwbtc没有用户产生借贷,导致黑客可以控制totalsupply,数据向下取整导致redeemunderlying可以全部赎回。如果能闪电贷能借的更多,攻击者持有的份额无限趋近去totalsuply也能完成攻击,但实际情况无法做到。

损失详情:

0.058 WBTC

20,854 枚 SNX

1,265,978枚USDC

842,788 枚 DAI

1,113,430枚USDT

865,142 枚 sUSD

457,286枚 FRAX

1,030枚ETH

评论

所有评论

推荐阅读

  • 马云出手增持 已连日买入阿里港股超6亿港元

    《科创板日报》25日讯,据消息人士向《科创板日报》记者透露,随着阿里发起配售融资,阿里巴巴创始人马云连日增持阿里港股,总额已超6亿港元,表达对阿里AI前景的坚定看好。

  • BTC跌破79000美元

    行情显示,BTC跌破79000美元,现报78993.01美元,24小时涨幅达到1.85%,行情波动较大,请做好风险控制。

  • BTC跌破80000美元

    行情显示,BTC跌破80000美元,现报79983.76美元,24小时涨幅达到3.33%,行情波动较大,请做好风险控制。

  • Hyperliquid政策中心敦促美国SEC和CFTC采纳统一的永续合约框架

    8月25日,Hyperliquid政策中心(Hyperliquid Policy Center,HPC)向美国美国SEC和CFTC提交了意见称,美国CFTC和SEC在过去一年中一直在努力寻找永续合约分类的答案。HPC认为,具有期货合约传统特征的股票永续合约可以被列为证券期货。HPC敦促美国SEC和CFTC建立一套统一的永续合约分类体系,该体系应基于每份合约的特征及其交易方式,将同类产品归为同一类,无论它们参考的是比特币、原油还是单一证券。 HPC要求美国SEC和CFTC采取以下四项措施:1、确认证券期货的定义包含了期货合约的既定特征,并且具有这些特征的现金结算股票永续合约可以作为证券期货上市。2、保留交易场所目前在产品上架决定方面所拥有的灵活性。3、保持两个机构分类的一致性,以便永续合约无论涉及何种资产,都能获得相同的阈值分类。4、对证券期货框架进行现代化改造,以重振该类别并适应新的产品结构。

  • BTC突破81000美元

    行情显示,BTC突破81000美元,现报81045.53美元,24小时涨幅达到4.61%,行情波动较大,请做好风险控制。

  • BTC突破80000美元

    行情显示,BTC突破80000美元,现报80059.99美元,24小时涨幅达到3.35%,行情波动较大,请做好风险控制。

  • BTC突破81000美元

    行情显示,BTC突破81000美元,现报81045.53美元,24小时涨幅达到4.61%,行情波动较大,请做好风险控制。

  • ETH突破2500美元

    行情显示,ETH突破2500美元,现报2500.39美元,24小时涨幅达到2.31%,行情波动较大,请做好风险控制。

  • BTC突破79000美元

    行情显示,BTC突破79000美元,现报79001.99美元,24小时涨幅达到1.85%,行情波动较大,请做好风险控制。