SharkTeam:MIM_SPELL被攻擊事件原理分析

2024-02-01 12:02:35

2024年1月30日,MIM_SPELL遭受閃電貸攻擊,因為精度計算漏洞,項目方損失650萬美元。

SharkTeam對此事件第一時間進行了技術分析,並總結了安全防範手段,希望後續項目可以引以為戒,共築區塊鏈行業的安全防线。

一、攻擊交易分析

攻擊者地址:

0x87F585809Ce79aE39A5fa0C7C96d0d159eb678C9

攻擊合約:

0xe1091d17473b049cccd65c54f71677da85b77a45

0x13AF445F81B0DEcA5dCb2Be6A4C691F545c95912

0xe59b54a9e37ab69f6e9312a9b3f72539ee184e5a

被攻擊合約:

0x7259e152103756e1616A77Ae982353c3751A6a90

攻擊交易:

0x26a83db7e28838dd9fee6fb7314ae58dcc6aee9a20bf224c386ff5e80f7e4cf2

0xdb4616b89ad82062787a4e924d520639791302476484b9a6eca5126f79b6d877

攻擊流程:

1. 攻擊者(0x87F58580)通過閃電貸借取300000枚MIM代幣。

2. 隨後向被攻擊合約(0x7259e1520)發送了240000枚的MIM代幣,用於下一步償還用戶的借款。

3. 攻擊者(0x87F58580)隨後調用repayForAll函數償還其他用戶的借款,後續又依次調用repay函數償還其他用戶借款,目的是將elastic變量減小為0.

4. elastic變量減小為0後,攻擊者(0x87F58580)創建新的攻擊合約(0xe59b54a9)並不斷的進行borrow和repay函數的調用,直到將elastic =0,base = 120080183810681886665215049728時結束。

5. 隨後攻擊者(0x87F58580)調用borrow函數和DegenBox合約的withdraw函數借出了5000047枚MIM代幣。

6. 攻擊者(0x87F58580)歸還閃電貸函數,並將4400000枚MIM代幣兌換為1807枚ETH,本交易獲利約450W。

二、漏洞分析

攻擊的本質是在進行借貸變量計算時精度出現了問題,使得關鍵變量elastic和base值被操縱後比例失衡,導致計算抵押物和借貸數量時出現問題,最終超額借出MIM代幣。

被攻擊合約(0x7259e1520)中borrow函數和repay函數在對elastic和base兩個變量進行計算時,都採用了向上取整的方式。

攻擊者(0x87F58580)首先通過償還其他用戶借款的方式,將elastic變量和base變量分別設置為了0和97。

隨後不斷的調用borrow函數和repay函數並且參數amount都為1,在第一次調用borrow函數時,由於elastic=0,會執行上述if邏輯並回到add函數中。這樣會導致elastic = 1,base = 98。

攻擊者(0x87F58580)再調用borrow函數並傳入1,由於elastic=1,會執行else邏輯,計算出的返回值為98,這樣在回到add函數中時,elastic=2,base變量為196.

但此時攻擊者(0x87F58580)調用repay函數並傳入1,由於elastic=2,會執行else邏輯,計算出的elastic變量本來為 1*2/98 =0,但由於下面存在向上取整的步驟,導致計算出的返回值1,這樣在回到sub函數中時,elastic變量又變回1,而base變量為195。

可以看到在經歷一次borrow-repay循環後,elastic變量不變而base變量近乎翻倍,利用這一漏洞,黑客頻繁進行borrow-repay函數循環,最後再調用一次repay,最終使得elastic=0 base = 120080183810681886665215049728。

當elastic和Base變量之間的比例嚴重失衡後,攻擊者(0x87F58580)添加了一點抵押物後即可通過solvent修飾符中的限制條件,從而借出大量MIM代幣。

三、安全建議

針對本次攻擊事件,我們在开發過程中應遵循以下注意事項:

1. 开發精度計算相關邏輯時,慎重考慮精度和取整情況。

2. 項目上线前,需要通過專業的第三方審計團隊進行智能合約審計。

About Us

SharkTeam的愿景是保護Web3世界的安全。團隊由來自世界各地的經驗豐富的安全專業人士和高級研究人員組成,精通區塊鏈和智能合約底層理論。提供包括鏈上大數據分析、鏈上風險預警、KYT/AML、智能合約審計、加密資產追討等服務,並打造了鏈上智能風險識別平臺ChainAegis,平臺支持無限層級的深度圖分析,能有效對抗Web3世界的高級持續性威脅(Advanced Persistent Threat,APT)。已與Web3生態各領域的關鍵參與者,如Polkadot、Moonbeam、polygon、Sui、OKX、imToken、Collab.Land等建立長期合作關系。

官網:https://www.sharkteam.org

Twitter:https://twitter.com/sharkteamorg

Discord:https://discord.gg/jGH9xXCjDZ

Telegram:https://t.me/sharkteamorg

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

Layer2 格局劇變:Base 生態有哪些關鍵亮點?

在激烈競爭的 L2 賽道中,原本穩坐釣魚臺的 Arbitrum 和 Optimism 似乎面臨着前...

加密泡泡啊
71 1個月前

XRP 漲至 7.5 美元?分析師告訴 XRP 大軍為純粹的煙火做好准備!

加密貨幣分析師 EGRAG 表示,XRP 即將迎來關鍵時刻,價格可能大幅上漲,這取決於能否突破關鍵...

加密泡泡啊
73 1個月前

以太坊ETF通過後 將推動山寨幣和整個加密生態大爆發

比特幣ETF通過後市場動蕩,以太坊ETF交易前景分析 比特幣ETF通過後,市場出現了先跌後漲的走勢...

加密泡泡啊
78 1個月前

ZRO為啥這么能漲?

ZRO概述 ZRO代幣,全稱為LayerZero,是LayerZero協議的本地代幣,旨在作為治理...

加密泡泡啊
66 1個月前

今晚ETH迎來暴漲時代 op、arb、metis等以太坊二層項目能否跑出百倍幣?

北京時間7月23日晚上美股开盤後 ETH 的ETF开始交易。ETH的裏程碑啊,新的時代开啓。突破前...

BNBCCC
75 1個月前

Mt Gox 轉移 28 億美元比特幣 加密貨幣下跌 ETH ETF 提前發行

2014 年倒閉的臭名昭著的比特幣交易所 Mt Gox 已向債權人轉移了大量比特幣 (BTC),作...

加密圈探長
71 1個月前