# Yearn Finance被盗超1100万美元,完整攻击流程深度解析 **Published by:** [CPBOX](https://paragraph.com/@cpbox/) **Published on:** 2023-04-15 **URL:** https://paragraph.com/@cpbox/yearn-finance-1100 ## Content 4月13日,据悉老牌DeFi项目Yearn Finance遭受黑客闪电贷攻击,被盗超1100万美元,Crypto Box团队得知该消息后,第一时间对整个攻击流程进行完整的梳理,后续将继续对黑客资金流向进行追踪,播报。下面跟着我们一起来梳理一下此次被盗事件的完整流程。 一、攻击情况概述 黑客根据yUSDT的合约配置错误,通过1wUSDT攻击yUSDT合约,得到了巨额的yUSDT,然后通过CURVE换成了USDT、USDC、BUSD等其他的稳定币,总计11539783美金。 详细数量见下表:二、漏洞详情 yUSDT的合约地址配置错误,其中fulcrum基于#iUSDC 而不是#iUSDT 合约地址:https://etherscan.io/address/0x83f798e925BcD4017Eb265844FDDAbb448f1707D#code三、详细攻击流程 1、攻击者首先通过闪电贷从 Balancer Vault中借5,000,000 DAI,5,000,000 USDC,2,000,000 USDT,2、黑客调用 Aave 合约的 repay 函数来偿还他人的债务。 这是为了降低 Aave 池中的抵押品收益率,从而降低 Aave 池在合约中的优先级(Yearn 合约根据收益率确定将资金分配到哪个池)。3、黑客调用了Yearn:yUSDT Token合约的充值函数,充值了90万枚USDT。 该函数根据存款金额和池中的代币余额为调用者铸造了相应数量的 yUSDT。 黑客此时铸造了 820,000 yUSDT,为后续的操作做准备。 4、此时,合约中有900,000 USDT和130,000 aUSDT。5、接下来,攻击者用 150,000 美元换取 150,000 bZx USDC iToken 并将其发送到 Yearn:yUSDT Token 合约。 此时,合约持有 118 万资金,攻击者拥有 90/103 的份额,这意味着他们可以提取 103 万资金。6、随后,攻击者调用 Yearn:yUSDT Token 合约的 withdraw 函数提取存入的资金。 此时,合约中只有之前存入的900K USDT,初始的130K aUSDT,以及150,000 bZx USDC iTokens。 7、如果一个池中的代币不足,合约将按顺序从后续池中提取代币。 此时,攻击者取出了全部900,000 USDT和130,000 aUSDT。 此操作后,合约仅持有 150,000 bZx。8、黑客随后调用了 Yearn:yUSDT 代币合约的relance函数。 该函数从当前池中取出代币,存入另一个收益更高的池中。而在 _withdrawAll 操作中会燃烧掉 iUSDC 以获得 USDC 代币,但在更新储备时获取的是 yUSDT 合约中 USDT 的余额。因此 fulcrum 储备被错误的指向了 iUSDC,导致此时 yUSDT 合约储备被操控为 0。9、由于第 2 步,合约将提取 USDT 和 USDC 并将它们添加到更高收益的池中。 由于合约现在只有bZx,所以只能提取USDC。 之后,资金被再投资到另一个 USDT 池中。10、黑客转入1 WEI USDT到池中,再次调用Yearn:yUSDT Token合约的充值函数充值10,000 USDT。 由于之前的操作,合约已经从池中提取了所有资金,无法将它们添加到新的池中。 11、结果,计算出的pool变量是黑客转移的 1 WEI,由于fulcrum合约配置错误,导致pool的计算中_balanceFulcrumInToken()返回了0,导致pool的计算结果成了1 wei,由于pool被用作除数,而分子还是很大的值,从而使shares计算出了一个非常大的值,用账户铸造了大量的yUSDT。最后,黑客使用 yUSDT 换出所有其他稳定币,总计盗取价值约为1150万美金的稳定币。 附录: 交易详情:https://etherscan.io/tx/0xd55e43c1602b28d4fd4667ee445d570c8f298f5401cf04e62ec329759ecda95d/advanced#internalyUSDT合约地址:https://etherscan.io/address/0x83f798e925BcD4017Eb265844FDDAbb448f1707D#code 四、结语 目前DeFi项目被盗事件频发,用户资产安全始终是重中之重,Crypto Box建议项目在上线或更新部署新的合约前应做好充分的合约审计工作,规避风险,保证用户资产安全。 Crypto Box是一个致力于成为最专业的Web3投研信息、实用工具、教程百科平台!我们的愿景是以社区发掘+深入投研+技术工具帮助Web3投资者。 ## Publication Information - [CPBOX](https://paragraph.com/@cpbox/): Publication homepage - [All Posts](https://paragraph.com/@cpbox/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@cpbox): Subscribe to updates