根据 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。
-
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。
更新流动性时需要考虑两种代币的数量是否处于正常比例,避免直接更新池子中单个币种数量,导致兑换资金数量出现波动从而被操控。
此外,代码上线前应做好全面的安全审计。
原文始发于微信公众号(Numen Cyber Labs):Web3 安全 | Compounder Finance 被攻击事件分析