# Yearn Finance被盗超1100万美元，完整攻击流程深度解析

By [CPBOX](https://paragraph.com/@cpbox) · 2023-04-15

---

![](https://storage.googleapis.com/papyrus_images/d9c99d1b675f99f31b1fbbaa9e2fb619a622fe5f6c2fcf1b7395823e1a111dbc.gif)

4月13日，据悉老牌DeFi项目Yearn Finance遭受黑客闪电贷攻击，被盗超1100万美元，Crypto Box团队得知该消息后，第一时间对整个攻击流程进行完整的梳理，后续将继续对黑客资金流向进行追踪，播报。下面跟着我们一起来梳理一下此次被盗事件的完整流程。

**一、攻击情况概述**

黑客根据yUSDT的合约配置错误，通过1wUSDT攻击yUSDT合约，得到了巨额的yUSDT，然后通过CURVE换成了USDT、USDC、BUSD等其他的稳定币，总计11539783美金。

详细数量见下表：

![](https://storage.googleapis.com/papyrus_images/3b8047322b32d3a54c30e63d1d50848eae902f35b717d9da7935c1203d3ec01f.png)

**二、漏洞详情**

yUSDT的合约地址配置错误，其中fulcrum基于#iUSDC 而不是#iUSDT

合约地址：[https://etherscan.io/address/0x83f798e925BcD4017Eb265844FDDAbb448f1707D#code](https://etherscan.io/address/0x83f798e925BcD4017Eb265844FDDAbb448f1707D#code)

![](https://storage.googleapis.com/papyrus_images/0080dfdd7eb91f6b8598ad990c841385b2e622db540215001a24f2be43f6a8b3.png)

**三、详细攻击流程**

1、攻击者首先通过闪电贷从 Balancer Vault中借5,000,000 DAI，5,000,000 USDC，2,000,000 USDT，

![](https://storage.googleapis.com/papyrus_images/a62ac3d477f5604110dc9f864a2617aacff1f609a43c756fdd4e50fc24bf3472.png)

2、黑客调用 Aave 合约的 repay 函数来偿还他人的债务。 这是为了降低 Aave 池中的抵押品收益率，从而降低 Aave 池在合约中的优先级（Yearn 合约根据收益率确定将资金分配到哪个池）。

![](https://storage.googleapis.com/papyrus_images/e5beabfa917f0a8b27d855e37008fdb866947f72ac66ab51269e659b1df1dc92.png)

3、黑客调用了Yearn:yUSDT Token合约的充值函数，充值了90万枚USDT。 该函数根据存款金额和池中的代币余额为调用者铸造了相应数量的 yUSDT。 黑客此时铸造了 820,000 yUSDT，为后续的操作做准备。

4、此时，合约中有900,000 USDT和130,000 aUSDT。

![](https://storage.googleapis.com/papyrus_images/072e372713a4d7cc07852f4457ba4588d2b7e8bfaf846daad3a54ba60c035358.png)

5、接下来，攻击者用 150,000 美元换取 150,000 bZx USDC iToken 并将其发送到 Yearn:yUSDT Token 合约。 此时，合约持有 118 万资金，攻击者拥有 90/103 的份额，这意味着他们可以提取 103 万资金。

![](https://storage.googleapis.com/papyrus_images/e5f6d7fd73a994363ab0b1d0b16cfdae634be73c9715825611f0cae285961587.png)

6、随后，攻击者调用 Yearn:yUSDT Token 合约的 withdraw 函数提取存入的资金。 此时，合约中只有之前存入的900K USDT，初始的130K aUSDT，以及150,000 bZx USDC iTokens。

7、如果一个池中的代币不足，合约将按顺序从后续池中提取代币。 此时，攻击者取出了全部900,000 USDT和130,000 aUSDT。 此操作后，合约仅持有 150,000 bZx。

![](https://storage.googleapis.com/papyrus_images/dd4d3f964b3e296df43751310149667fe2f55c03293ce73ba8331d1be98747c2.png)

8、黑客随后调用了 Yearn:yUSDT 代币合约的relance函数。 该函数从当前池中取出代币，存入另一个收益更高的池中。而在 \_withdrawAll 操作中会燃烧掉 iUSDC 以获得 USDC 代币，但在更新储备时获取的是 yUSDT 合约中 USDT 的余额。因此 fulcrum 储备被错误的指向了 iUSDC，导致此时 yUSDT 合约储备被操控为 0。

![](https://storage.googleapis.com/papyrus_images/7b2a41f7a1b3397699acca262b76148b05653d55312b34ca20f6af36bd2322d4.png)

9、由于第 2 步，合约将提取 USDT 和 USDC 并将它们添加到更高收益的池中。 由于合约现在只有bZx，所以只能提取USDC。 之后，资金被再投资到另一个 USDT 池中。

![](https://storage.googleapis.com/papyrus_images/7ca2ba98cef708a1bf10aed10c735d19a5fd8de665e41c5de696fef3d9d5f927.png)

10、黑客转入1 WEI USDT到池中，再次调用Yearn:yUSDT Token合约的充值函数充值10,000 USDT。 由于之前的操作，合约已经从池中提取了所有资金，无法将它们添加到新的池中。

11、结果，计算出的pool变量是黑客转移的 1 WEI，由于fulcrum合约配置错误，导致pool的计算中\_balanceFulcrumInToken()返回了0，导致pool的计算结果成了1 wei，由于pool被用作除数，而分子还是很大的值，从而使shares计算出了一个非常大的值，用账户铸造了大量的yUSDT。

![](https://storage.googleapis.com/papyrus_images/38f76e008c1db7dbe9089e6fd0458acf14a4995e63f280c6797e68f25b2f31cd.png)

![](https://storage.googleapis.com/papyrus_images/b18d2ec37882269759aaa1f71fc94952f653875bb29d83ceacf89c98602b8d29.png)

![](https://storage.googleapis.com/papyrus_images/c879b4c1872619db6cd5a9285de33a8a3fd9d76b92ca28a742a4a1b82e8197a0.png)

最后，黑客使用 yUSDT 换出所有其他稳定币，总计盗取价值约为1150万美金的稳定币。

附录：

交易详情：[https://etherscan.io/tx/0xd55e43c1602b28d4fd4667ee445d570c8f298f5401cf04e62ec329759ecda95d/advanced#internalyUSDT合约地址：](https://etherscan.io/tx/0xd55e43c1602b28d4fd4667ee445d570c8f298f5401cf04e62ec329759ecda95d/advanced#internalyUSDT%E5%90%88%E7%BA%A6%E5%9C%B0%E5%9D%80%EF%BC%9A)[https://etherscan.io/address/0x83f798e925BcD4017Eb265844FDDAbb448f1707D#code](https://etherscan.io/address/0x83f798e925BcD4017Eb265844FDDAbb448f1707D#code)

**四、结语**

目前DeFi项目被盗事件频发，用户资产安全始终是重中之重，Crypto Box建议项目在上线或更新部署新的合约前应做好充分的合约审计工作，规避风险，保证用户资产安全。

**Crypto Box是一个致力于成为最专业的Web3投研信息、实用工具、教程百科平台！我们的愿景是以社区发掘+深入投研+技术工具帮助Web3投资者**。

![](https://storage.googleapis.com/papyrus_images/d6d9bf27ad4639f9c6432bf6ba8f8dda10622fdba416785ab261b2340afccb6c.png)

---

*Originally published on [CPBOX](https://paragraph.com/@cpbox/yearn-finance-1100)*
