长亭百川云 - 文章详情

Web3 安全 | Compounder Finance 被攻击事件分析

Numen Cyber Labs

41

2024-07-13

根据 NUMEN 链上监控显示,Jun-07-2023 04:14:11 AM +UTC, Ethereum 链上 Compounder Finance 项目由于流动性池中比例可通过调用方法更新发生变化,导致兑换资金数量出现波动从而遭到攻击,损失27,147枚 DAI,价值约27,147美元。

目前被盗资金暂未移动。

事件分析

攻击者地址:

etherscan.io/address/0x0e816b0d0a66252c72af822d3e0773a2676f3278

攻击者合约地址:

etherscan.io/address/0x2d7973177d594237a9b347cd41082af4cbb40f2b

**被攻击合约:**etherscan.io/address/0xaf274e912243b19b882f02d731dacd7cd13072d0

根本原因

由于流动性池中比例发生变化,导致兑换资金数量出现波动。

攻击流程

**1.**最初,攻击者通过 Uniswap V3 闪电贷借入123.9万枚 DAI。

然后攻击者抵押了20万枚 DAI 和100万枚 DAI,分别获得了134万枚 cDAI 和88万枚 yDAI。

**2.**攻击者将88万枚 yDAI 分别兑换成5万 yDAI 以及4.1万枚 yUSDC。

他们还将16万枚 yDAI 转换为9.4万枚 yTUSD,将67万枚 yDAI 转换为48,693,900 亿枚 yUSDT。

**3.**随后,攻击者将134万 cDAI 解除质押,并立即调用 StrategyDAICurve 存款,这里会将当前合约所有的 DAI 存入并且将 yDAI 添加流动性,这一步改变了交易对平衡。

**4.**攻击者将之前的三笔兑换(yDAI 分三笔兑换为4.1万 yUSDC,9.4万 yTUSD,48,693,900亿枚 yUSDT)按照原路径兑换:

  • 4.1万 yUSDC 兑换成75万 yDAI(兑换获利70万 yDAI)

  • 9.4万 yTUSD 兑换成10万 yDAI(兑换亏损6万 yDAI)

  • 48,693,900亿 yUSDT 兑换成5.1万 yDAI(兑换亏损62万 yDAI)

  • 共计90万 yDAI,比兑换之前的88万枚获利2万 yDAI。

**5.**最后,在提现过程中,攻击者释放了质押中累计的91万枚 yDAI,从而提现了103万枚 DAI。

在偿还闪电贷和手续费后,攻击者获利27,147枚 DAI。

  总 结 

更新流动性时需要考虑两种代币的数量是否处于正常比例,避免直接更新池子中单个币种数量,导致兑换资金数量出现波动从而被操控。

此外,代码上线前应做好全面的安全审计。

END

Numen 官网

https://numencyber.com/ 

GitHub

https://github.com/NumenCyber

Twitter

https://twitter.com/@numencyber

Medium

https://medium.com/@numencyberlabs

LinkedIn

https://www.linkedin.com/company/numencyber/

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2