據慢霧區情報,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代幣進行了拋售。此次攻擊是由於ZabuFinance的抵押模型與SPORE代幣不兼容導致的,此類問題導致的攻擊已經發生的多起,慢霧安全團隊建議:項目抵押模型在對接通縮型代幣時應記錄用戶在轉賬前後合約實際的代幣變化,而不是依賴於用戶傳入的抵押代幣數量。