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 似乎面临着前...

加密泡泡啊
424 1年前

XRP 涨至 7.5 美元?分析师告诉 XRP 大军为纯粹的烟火做好准备!

加密货币分析师 EGRAG 表示,XRP 即将迎来关键时刻,价格可能大幅上涨,这取决于能否突破关键...

加密泡泡啊
430 1年前

以太坊ETF通过后 将推动山寨币和整个加密生态大爆发

比特币ETF通过后市场动荡,以太坊ETF交易前景分析 比特币ETF通过后,市场出现了先跌后涨的走势...

加密泡泡啊
440 1年前

ZRO为啥这么能涨?

ZRO概述 ZRO代币,全称为LayerZero,是LayerZero协议的本地代币,旨在作为治理...

加密泡泡啊
384 1年前

今晚ETH迎来暴涨时代 op、arb、metis等以太坊二层项目能否跑出百倍币?

北京时间7月23日晚上美股开盘后 ETH 的ETF开始交易。ETH的里程碑啊,新的时代开启。突破前...

BNBCCC
396 1年前

Mt Gox 转移 28 亿美元比特币 加密货币下跌 ETH ETF 提前发行

2014 年倒闭的臭名昭著的比特币交易所 Mt Gox 已向债权人转移了大量比特币 (BTC),作...

加密圈探长
400 1年前