VAULT:闪电贷+重入攻击,OUSD 损失 700 万美金技术简析

By:??Kong@慢雾安全团队

据慢雾区情报,2020年11月17日,以太坊DeFi项目OUSD遭受闪电贷攻击。慢雾安全团队于第一时间跟进并进行相关分析。以下是慢雾安全团队针对本次攻击的简要分析。攻击过程详细分析会在稍后发布。如有兴趣可保持持续关注。

背景提要

OriginDollar(OUSD)由OriginProtocol(OUSD)创建,是一种新型的ERC-20稳定币,当它仍然放在钱包里时,会自动从DeFi协议中获得有竞争力的收益。OUSD由USDT、USDC和DAI等其他稳定币的1:1支持。

数字贷款机构Toss Bank以21亿美元估值融资1.5亿美元:金色财经报道,知情人士表示,韩国数字贷款机构和新银行Toss Bank在2023年3月完成一轮1.53亿美元的融资,即将以21亿美元(2.7万亿韩元)的估值再融资1.54亿美元(2000亿韩元)。另外该公司已经计划将在年底再融资1.5亿美元。Toss Bank自2021年成立以来共融资超过12亿美元。

据消息人士透露,这笔1.54亿美元的新融资预计将在今年第三季度末完成,也就是9月份左右。该银行得益于与Viva Republica的合作,后者拥有约2600万用户和1500万月度活跃用户。Viva Republica提供一系列金融服务,如银行、转账、基于手机的股票交易、信用评分、P2P借贷等。[2023/8/3 16:16:40]

攻击流程简析

当前Arbitrum以太坊上锁定资产价值突破40亿美元:金色财经报道,据Dune Analytics数据显示,当前Arbitrum以太坊(ERC20)链上锁定资产价值已突破40亿美元,本文撰写时达到40.40亿美元,累计以太坊(ERC20)链上锁定资产价值为84.15亿美元。截至目前,Arbitrum链上链上合约创建数量为1,960,999个,账户创建总量为443.2万个,其中活跃账户量为366.3万个。[2023/4/4 13:43:24]

1.攻击者使用dydx闪电贷借出70000个ETH,随后通过Uniswap将其兑换为USDT和DAI。

好莱坞明星Bill Murray在Coinbase NFT市场购入DeadFellaz #5778:金色财经报道,链上数据显示,好莱坞明星 Bill Murray 通过 Coinbase NFT 市场以 1.5 ETH 的价格购入 DeadFellaz #5778,在设计方面,该 NFT具有几个罕见的特征,包括:爬行动物的眼睛、恐惧和高尔夫球背心。截至目前,Bill Murray 已持有 12 个 NFT,包括 CryptoPunks、World of Women、Gutter Cat Gang 和 Cool Cats 等。另据最新交易数据显示,截至目前 DeadFellaz NFT 系列交易额达到 9348 万美元,市值约为 4505 万美元,地板价为 1.09 ETH,24 小时涨幅为 1.49%。[2022/7/17 2:18:29]

2.攻击者调用OUSDVault的?mint?函数,Vault会先进行一次rebase将之前积累的奖励进行分配,随后将750万USDT从攻击者合约转入OUSDVault中。此时OUSD合约会铸出等量的750万OUSD代币给攻击合约,最后通过allocate来结算当前的收益。

3.在攻击者转入750万之前,Vault的价值约为7018138美元。攻击者转入750万USDT后将占Vault总价值的一半以上。

4.随后攻击合约利用?mintMultiple?函数传入DAI合约地址与攻击合约的地址,同样是先进行一次rebase,将之前累计的收益进行分配(包含先前转入的750万USDT部分),再通过transferFrom先将攻击合约的2050万DAI转入Vault中。随后将调用攻击合约的transferFrom函数,攻击者在攻击合约的transferFrom函数中构造再次调用Vault合约mint?函数的逻辑来实现重入攻击。

5.在上一步骤中转入2050万DAI后通过攻击合约的transferFrom函数再次调用Vault的mint?函数。由于重入时传入2000USDT符合判断是否调用rebase的条件,此时将进行一次rebase,而由于rebase需要Vault中的资产总价值和OUSD的总铸币数有差值才能触发。按照原本的业务场景是进行allocate结算收益后改变Vault中的资产总价值然后通过rebase进行分配。而由于重入原因并没有先通过?oUSD.mint?进行铸币操作,且攻击者已先将2050万的DAI转入Vault中,所以Vault中的资产总价值仍然增加了,导致合约中的资产总价值大于OUSD的总铸币量。因此Vault会将增加的2050万DAI当成收益部分进行rebase分配。在步骤3中由于攻击者资产已占Vault总价值的一半以上,所以此时攻击者将凭空获得超过价值1025万的收益分配。

6.随后将通过?oUSD.mint?铸出2000OUSD,并通过allocate结算重入时2000USDT的收益(从上一步骤可以看出攻击合约传入的2000USDT只是为了满足调用rebase的条件,触发收益分配而已)。重入结束后仍将通过oUSD.mint铸出之前转入的2050万DAI等值的OUSD代币。

7.最后Vault的总价值约为3501万美元,但攻击者所拥有的价值超过3825万美元,因此攻击者用大部分的OUSD去Vault进行赎回操作,将Vault基本提空,而其余的OUSD是通过Uniswap和Sushiswap的OUSD-USDT池将OUSD换成USDT来增加收益。

总结

此次攻击关键在于调用外部合约造成的重入问题与Vault的rebase收益分配机制相结合,导致攻击者可以通过重入来凭空获得巨额的收益分配。针对此类情况,慢雾安全团队建议对传入资产进行检查后,对不在白名单内的资产直接进行回滚,并使用防重入锁以避免重入攻击。

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

金星链

GateioFTX:2020武安市应收账款政信1号

超优质政信项目—首次非标融资!!全市场唯一财政局盖章确权应收款和作为股东决议的超强政信!!融资人担保人均由武安市财政局100%控股!!应收账款对应项目“武安市2016年美丽乡村建设项目”已签署政.

[0:31ms0-0:698ms