慢霧分析Zabu Finance 遭閃電貸攻擊:抵押模型與SPORE 代幣不兼容所致

2021 年9 月12 日,Avalanche 上Zabu Finance 項目遭受閃電貸攻擊,慢霧安全團隊針對此過程進行分析,具體攻擊步驟如下:

1. 攻擊者首先創建兩個攻擊合約,隨後通過攻擊合約1 在Pangolin 將WAVAX 兌換成SPORE 代幣,並將獲得的SPORE 代幣抵押至ZABUFarm 合約中,為後續獲取ZABU 代幣獎勵做準備。

2. 攻擊者通過攻擊合約2 從Pangolin 閃電貸借出SPORE 代幣,隨後開始不斷的使用SPORE 代幣在ZABUFarm 合約中進行`抵押/提現`操作。由於SPORE 代幣在轉賬過程中需要收取一定的手續費(SPORE 合約收取),而ZABUFarm 合約實際接收到的SPORE 代幣數量是小於攻擊者傳入的抵押數量的。分析中我們注意到ZABUFarm 合約在用戶抵押時會直接記錄用戶傳入的抵押數量,而不是記錄合約實際收到的代幣數量,但ZABUFarm 合約在用戶提現時允許用戶全部提取用戶抵押時合約記錄的抵押數量。這就導致了攻擊者在抵押時ZABUFarm 合約實際接收到的SPORE 代幣數量小於攻擊者在提現時ZABUFarm 合約轉出給攻擊者的代幣數量。

3. 攻擊者正是利用了ZABUFarm 合約與SPORE 代幣兼容性問題導致的記賬缺陷,從而不斷通過`抵押/提現`操作將ZABUFarm 合約中的SPORE 資金消耗至一個極低的數值。而ZABUFarm 合約的抵押獎勵正是通過累積的區塊獎勵除合約中抵押的SPORE 代幣總量參與計算的,因此當ZABUFarm 合約中的SPORE 代幣總量降低到一個極低的數值時無疑會計算出一個極大的獎勵數值。

4. 攻擊者通過先前已在ZABUFarm 中有進行抵押的攻擊合約1 獲取了大量的ZABU 代幣獎勵,隨後便對ZABU 代幣進行了拋售。

此次攻擊是由於Zabu Finance 的抵押模型與SPORE 代幣不兼容導致的,此類問題導致的攻擊已經發生的多起,慢霧安全團隊建議:項目抵押模型在對接通縮型代幣時應記錄用戶在轉賬前後合約實際的代幣變化,而不是依賴於用戶傳入的抵押代幣數量。

參考:
攻擊合約1:0x0e65Fb2c02C72E9a2e32Cc42837df7E46219F400
攻擊合約2:0x5c9AD7b877F06e751Ee006A3F27546757BBE53Dd
抵押交易:0xf76b37ed46c218d4b791e9769b139c3e1f43d1888f37ff0a647c7a8bb58528fb
攻擊交易:0x0d65ce5c7a0c072b14ec5da08488d07778f334a7ddb6b7a30df97f274f3e1eb3
獲利交易:0x8b3042e55a63f39bb388240a089cf4d51e59abe7cb0bff303c6dbb19eaeb75ac

陀螺財經訊

Total
0
Shares
Related Posts