DeFi協議MIM_Spell遭黑客“偷襲” 損失超600萬美元
來源:Beosin
北京時間2024年1月30日,據Beosin旗下EagleEye安全風險監控、預警與阻斷平臺監測顯示, DeFi協議MIM_Spell遭黑客閃電貸攻擊,導致了超600萬美元的損失。 目前攻擊者將被盜資金兌換為ETH,並轉移到兩個攻擊者地址上,Beosin KYT將對資金進行持續監控,同時我們對本次漏洞進行了分析。
漏洞分析
該事件發生的主要原因是 攻擊者利用了項目方合約使用了向上取整的算法,並且控制了參數為1,將向上取整的誤差控制的最大,從而導致账本失衡。
合約存在兩個函數,分別是borrow和repay,一個是向合約借錢,一個是還錢給合約。
Borrow函數將指定借款數額,並且通過比例轉換計算出債務值,更新到調用者的總債務值。如下圖,這裏合約的add算法採用了向上取整。
Borrow函數將指定還款債務值,並且通過比例轉換計算出還款數額,將還款數額轉移到本合約。如下圖,這裏合約的sub算法依然採用了向上取整。
了解了借款和還款的過程,我們來看看黑客是如何利用該漏洞的。
黑客先將合約的借款數額與債務值控制為了0與97(如何控制將在下一節介紹)。
接下來不停調用borrow和repay函數,並且借款和還款數值都為1,最後將借款數額與債務值控制為了0和120080183810681886665215049728,導致比例嚴重失衡。
根據上述代碼規則(elastic=0,base=97),當攻擊者調用一次borrow並傳入1時,兩個账本將變為elastic=1、base=98(elastic為0時,將按數值同步增加),再次調用一次borrow並傳入1時,將變成elastic=2、base=196(elastic不為0時,將按比例同步增加)。
接下來攻擊者調用repay函數傳入1,將調用sub函數,此時計算出來的elastic應該等於1*1/196=>0,但是算法向上取整,導致計算出來elastic=1,結果將變成elastic=1、base=195。可以看到,此時elastic不變,base卻翻倍。
攻擊者通過多次上述方式,將elastic=0、base=120080183810681886665215049728。最終通過一筆borrow將合約500多萬MIM借貸出來。
攻擊流程
明白了函數問題點,我們來看看攻擊者是如何實施攻擊的(其中一筆交易為例)。
1.攻擊者首先借貸了30萬枚MIM。
2.隨後,攻擊者在回調函數中查詢借款數額與債務值,可以看到,此時為24萬和23萬。
3.接下來攻擊者調用repayForAll函數,歸還了24萬MIM代幣,將elastic控制得極小。
4.接下來,攻擊者通過repay函數歸還了其他用戶的負債,最終將借款數額與債務值控制為了0與97。
5.攻擊者新創建合約,並通過上訴borrow與repay的方式,將借款數額與債務值控制為了0和120080183810681886665215049728。
6.最終通過一筆borrow將500萬MIM借貸出來,並歸還閃電貸。
資金追蹤
截止發稿,被盜的超600萬美元的資金,全部被攻擊者兌換為了ETH,並且一直分散存在黑客地址未移動,Beosin KYT反洗錢平臺將對資金進行持續監控。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
Uniswap公告Unichain主網明年初上線!首測路線圖兩功能,UNI強彈17%
去 中心化交易所(DEX)龍頭 Uniswap 於 10 月宣佈推出專為 DeFi 設計的 Lay...
下周必關注|LayerZero決定是否开啓“費用开關”;Aligned空投注冊結束(12.23-12.29)
下周重點預告 12 月 23 日 Aligned 將向 891322 個地址空投 26% 的 AL...
空投周報 | OpenSea基金會官推上线;Azuki、Doodles疑似即將發幣(12.16-12.22)
@OdailyChina @web3_golem Odaily星球日報盤點了 12 月 16 日至...
資金費率的演變:從2021年黃金時代,到2024-2025年套利復興
資金費率起源 資金費率起源於加密貨幣衍生品市場,特別是從永續期貨合約中發展而來。它作為一種機制,用...
Beosin
文章數量
65粉絲數
0