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反洗錢平臺將對資金進行持續監控。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
新用戶去哪了?「沒人玩」比熊市更可怕,加密專案下一步怎麼走?
加 密行銷工作令人眼花撩亂:從選擇合適的管道,到訊息傳遞,再到團隊協調。你是否應該投資舉辦一場活動...
LIBRA幕後推手又割韭菜!發新幣$WOLF「市值衝上4200萬鎂」後秒歸零
作 為 LIBRA、MELANIA 等代幣發行幕後推手的 Kelsier Ventures 執行長...
空投周報 | Babylon空投注冊截止時間延長至3月19日;Bedrock开放空投查詢(3.10-3.16)
@OdailyChina @web3_golem Odaily星球日報盤點了 2025 年 3 月...
周報 | MGX 對幣安投資 20 億美元,並收購幣安的少數股權;美 SEC 推遲批准 DOGE、XRP、LTC、Solana 與 ADA 現貨 ETF
1、 TON 基金會確認 Telegram 創始人已重獲自由,支持捍衛在线言論自由和隱私權 TON...
牛市結束了?10x Research:比特幣恐再盤整8個月,市場缺抄底買盤
比 特幣在 11 日跌破 7.7 萬美元後反彈,近幾日持續在 8 萬美元上方震盪,儘管在 14 日...
Beosin
文章數量
65粉絲數
0
評論