據慢霧區情報,2023 年 4 月 13 日,去中心化收益聚合平臺 Yearn Finance 遭到攻擊,攻擊者獲利超千萬美金。慢霧安全團隊以簡訊的形式分享如下:
相關信息
Yearn 的 yUSDT 合約設計存在 aUSDT、dydx 頭寸、iUSDC 與 cUSDT 儲備,用戶在 deposit/withdraw 時會根據上述儲備余額計算用戶所能獲得的份額/所需存款的數額。
攻擊核心點
此次攻擊的原因在于攻擊者利用 yUSDT 合約被錯誤設置了 fulcrum 地址,從而操控 yUSDT 合約中的穩定幣儲備余額,通過在 yUSDT 中存入 USDT,以獲得大量的非預期的 yUSDT 代幣進行獲利。
Yearn Finance不支持以太坊PoW分叉,舊版本的Yearn保險庫許可功能存在風險:9月6日消息,Yearn Finance發布關于許可功能的安全公告,低于0.4.4版本的Yearn保險庫具有許可功能,容易受到分叉網絡中的重放攻擊。Yearn不鼓勵在其他分叉網絡中的Yearn保險庫中使用許可方法。
Yearn不打算在合并后支持任何以太坊工作量證明 (PoW) 分叉,并且不能保證除了官方支持的其他網絡中的保險庫的正確功能。如果之前在以太坊主網中使用過該功能,請使用該approve(spender, 0)功能重置permit限額,并使用一個非無限的到期期限。[2022/9/6 13:11:24]
Yearn.Finance已發布vault v0.2.1(Laika)版本:Yearn.Finance中文站凌晨發微博稱,vault v0.2.1(Laika)已經發布,依然是v2正式上線主網前的測試版本。[2020/11/29 22:27:52]
具體細節分析
1、攻擊者首先通過閃電貸借出大量的 DAI、USDC 和 USDT,接著通過 Curve 的 ySwap 將 DAI 和 USDC 換成 USDT,以消耗 yUSDT 合約中的 aUSDT 儲備。
2、接著攻擊者為 Aave Pool v1 上存在負債的用戶還款,目的是增加 Aave Pool v1 中的 USDT 數額,以便 yUSDT 中的 aUSDT 能夠順利被贖回。
yEarn發布yveCRV保險庫:yEarn剛剛發布了一個新的veCRV保險庫:yveCRV,該保險庫或將改變Curvefinance生態系統的游戲規則。 現在有可永久鎖定CRV存款的保管庫,作為交換可以賺取veCRV持有人應得的費用和其他已鎖定CRV以獲得投票支持的保險庫的費用。[2020/11/9 12:05:48]
3、緊跟著調用 yUSDT 合約的 deposit 函數進行 USDT 存款,得到相對應的 yUSDT 代幣。為后續通過 withdraw 清空 yUSDT 中 aUSDT 儲備做準備。
Yearn已允許存入CRV分享Curve DAO管理費:Yearn核心開發人員banteg發布推文稱已為Backscratcher Vault創建了一個用戶界面,允許用戶將CRV代幣存入vault,分享Curve DAO的管理費,Yearn將在未來推出支持管理費支付的功能。[2020/11/9 12:03:35]
4、為了確保 withdraw 時能夠清空 yUSDT 中 aUSDT 儲備,攻擊者調用 iUSDC 合約的 mint 函數鑄造 iUSDC 后,將 iUSDC 直接轉給 yUSDT 合約,為 yUSDT 合約增加儲備深度。
5、隨后攻擊者調用 yUSDT 合約的 withdraw 函數進行取款,由于此時 provider 指定為 AAVE,因此 yUSDT 會通過 Aave Pool v1 贖回 USDT 給提款人。
6、由于攻擊者在之前通過 iUSDC 增加了合約中的儲備,因此在此次提現中可以將 yUSDT 里的 aUSDT 儲備全部清空。
7、此時 yUSDT 合約中的 aUSDT、dydx 頭寸與 cUSDT 儲備都被操控為 0 了。最后,為清空 iUSDC 儲備,攻擊者調用 yUSDT 合約的 rebalance 函數,進行儲備更新。
8、由于此時 yUSDT 中只剩余 iUSDC,因此合約的新 provider 將會被指向iUSDC,導致 Rebalance 函數會先進行 _withdrawAll 操作,再通過余額獲取的方式更新儲備。
9、而在 _withdrawAll 操作中會燃燒掉 iUSDC 以獲得 USDC 代幣,但在更新儲備時獲取的是 yUSDT 合約中 USDT 的余額。因此 fulcrum 儲備被錯誤的指向了 iUSDC,導致此時 yUSDT 合約儲備被操控為 0。
10、攻擊者為確保能通過存款獲得大量的 yUSDT,向 yUSDT 合約中轉入 1 wei 的 USDT。
11、最后,攻擊者調用 yUSDT 的存款函數,存入 10,000 枚 USDT,獲得 1,252,660,242,850,000 枚 yUSDT,并通過 curve 將 yUSDT 換成大量的 yDAI、yUSDC、yTUSD。
總結
本次攻擊事件是由于 Yearn Finance 的 yUSDT 合約錯誤的配置導致的。慢霧安全團隊建議在對協議進行配置時,應仔細檢查所有參數是否符合預期并進行充分的測試以確保協議的安全。
慢霧科技
個人專欄
閱讀更多
金色財經 善歐巴
Chainlink預言機
金色早8點
白話區塊鏈
Odaily星球日報
Arcane Labs
深潮TechFlow
歐科云鏈
BTCStudy
MarsBit
原文作者:Leo,BlockBeatsWeb3 錢包追蹤應用 Context 宣布其推出的 NFT 鑄造聚合器 mint.fun 已開放通行證鑄造.
1900/1/1 0:00:00原文作者:Web3_buidl 原文編譯:Yvonne DeFi 戰場已出現過幾場知名「戰爭」,如 Curve 之戰和 DEX 流動性之戰。以太坊上海升級已啟動下一個戰爭敘事——質押大戰.
1900/1/1 0:00:00撰文:雨中狂睡 來源:TechFlow 在 Optimistic Rollup 起勢之后,Zk Rollup 正在迎來屬于它的春天.
1900/1/1 0:00:00如果一切按計劃進行,兩個星期后,以太坊將推出備受期待的「上海升級」。此次升級,允許質押者取出質押在信標鏈上的ETH,這意味著以太坊順利達成了長達數年的POS轉變.
1900/1/1 0:00:00過去數日,以太坊主網的 gas 價格明顯上漲,且基本一直持續在 50 GWEI 左右居高不下,這讓許多習慣在主網操作的用戶感到困擾.
1900/1/1 0:00:00在上篇文章中我提到,Meta 放棄了將 NFT 集成到他們的核心產品 Facebook 和 Instagram 的計劃。如果市場沒有因為銀行業的危機而陷入恐慌,這件事本應引起相當大的關注.
1900/1/1 0:00:00