Zabu Finance閃電貸安全事件分析
前言
9月12日,知道創宇區塊鏈安全實驗室 監測到 Avalanche 上的 DeFi 協議 Zabu Finance 項目遭受閃電貸攻擊。實驗室第一時間跟蹤本次事件並分析。
涉及對象
攻擊合約
攻擊合約1:
0x0e65Fb2c02C72E9a2e32Cc42837df7E46219F400
攻擊合約2:
0x5c9AD7b877F06e751Ee006A3F27546757BBE53Dd
漏洞合約
ZABUFarm:
0xf61b4f980a1f34b55bbf3b2ef28213efcc6248c4
SPORE:
0x6e7f5c0b9f4432716bdd0a77a3601291b9d9e985
漏洞成因分析
漏洞產生原因在於 Defi 協議與代幣協議之間的不兼容,其不兼容主要是 zabuFarm 合約質押功能與 spore 合約轉账功能出現衝突,下面從雙方功能實現邏輯來分析衝突。
zabuFarm合約質押功能
zabuFarm 合約質押功能由函數 deposit 實現
簡述 deposit 函數實現邏輯:
1.由傳參_pid 獲取對應礦池信息與用戶信息
2.更新_pid 對應礦池信息,當用戶账戶不為 0 向用戶發送質押已產生獎勵
3.將傳參_amount 數量的代幣從函數調用者轉移到該合約
4.更新用戶添加的代幣以及最新獎勵狀態
5.觸發質押事件
spore合約轉账功能
spore 合約轉账功能由函數_transferStandard 實現(ps:_transferStandard 函數是 zabuFarm 合約質押功能轉账時調用的函數)
簡述_transferStandard 函數實現邏輯:
1.由傳參 tAmount 通過_getValues 函數獲取五個值,分別是 rAmount 實際轉账數量, rTransferAmount 收費後轉账數量, rFee 實際費用,tTransferAmount 初始轉账數量,tFee 初始費用
2.對相應账戶進行實際轉账代幣數量更新
3.通過_reflectFee 函數進行費用記錄更新
由此我們可以發現 zabuFarm 合約質押功能與 spore 合約轉账功能出現衝突的本質在於 deposit 函數僅是對用戶傳入轉账金額_amount 做用戶账戶更新記錄,而不是對_transferStandard 函數在收取費用後實際轉账做用戶账戶更新記錄,導致實際收款小於账戶記錄,俗稱虧本买賣。
簡述攻擊過程
1.利用攻擊合約1 0x0e65,將 WAVAX 代幣通過 Pangolin 置換成 SPORE 代幣,並質押到 ZABUFarm 合約中;
2.通過攻擊合約2 0x5c9A 從 Pangolin 閃電貸借出 SPORE 代幣,並利用 SPORE 代幣不斷在 ZABUFarm 合約進行質押-提現的操作,消耗原本屬於ZABUFarm 合約的SPORE 代幣,由於 ZABUFarm 合約是通過 SPORE 代幣總量計算獎勵,攻擊合約1 0x0e65 會獲得巨額 ZABU 代幣獎勵;
3.最後取出質押 SPORE 代幣,歸還閃電貸,拋售 ZABU 代幣獲利。
總結
此次攻擊屬於 defi 協議與代幣協議之間不兼容導致的,迄今為止此類攻擊事件已發生數次,知道創宇區塊鏈安全實驗室再次提醒,近期各鏈上頻頻爆發攻擊事件,合約安全愈發需要得到迫切重視,合約審計、風控措施、應急計劃等都有必要切實落實。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
GLIF代幣空投:Filecoin最大DeFi協議开啓一億枚代幣的分發!
Glif是Filecoin上最大的DeFi協議,正在推出其原生代幣。總計將向用戶空投1億枚GLIF...
World Liberty Financial能否改變穩定幣遊戲規則?
特朗普加密項目“World Liberty”計劃發行穩定幣,消息人士稱據悉,特朗普加密項目計劃推出...