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

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

根据 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。


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


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

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

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



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

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


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。

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



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

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

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


  总 结 

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


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


END


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


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/

原文始发于微信公众号(Numen Cyber Labs):Web3 安全 | Compounder Finance 被攻击事件分析

版权声明:admin 发表于 2023年6月7日 下午6:41。
转载请注明:Web3 安全 | Compounder Finance 被攻击事件分析 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...