Cointime

扫码下载App
iOS & Android

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

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. 项目上线前,需要通过专业的第三方审计团队进行智能合约审计。

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

评论

所有评论

推荐阅读

  • 腾讯WorkBuddy月访问量逾2000万

    7月20日,据最新发布的《2026年Q2中国办公智能体平台市场洞察报告》显示,腾讯的WorkBuddy在国内PC端AI原生办公智能体市场,6月单月访问量突破2000万,保持市场第一领先优势,超过第二、第三位的总和。报告显示,6月份,中国PC端AI原生办公室智能体市场快速扩张,总访问量突破6000万次。其中,腾讯WorkBuddy以2097万次的每月访问量领先全行业,腾讯旗下另一款AI程式设计智能体CodeBuddy,也稳居头部。

  • 上海市人工智能重点项目签约仪式举行

    金色财经报,在7月20日举行的2026世界人工智能大会闭幕式上,上海市人工智能重点项目签约仪式举行,共有32个项目达成合作,总签约金额达409亿元。(证券时报)

  • 美股存储概念股盘前集体上涨,SK海力士涨超3%

    7月20日,美股市场存储概念股盘前集体上涨,其中,SK海力士涨超3%,美光科技、闪迪涨超2%,希捷科技、西部数据涨超1%。

  • 美股光通信概念股盘前普涨,Lumentum涨超2%,迈威尔涨超1%

    7月20日,美股市场光通信概念股盘前普涨,其中,Lumentum、Lightwave Logic涨超2%,Applied Optoelectronics、Credo Technology、MaxLinear、诺基亚、Coherent、Astera Labs、迈威尔科技、POET Technologies、康宁、Ciena、AXT Inc涨超1%。

  • 港交所回应考虑延长股票交易时间

    7月20日,市场传闻称“香港交易所考虑延长股票交易时间,取消午休时段”,对此,港交所回应称,香港交易所一直致力于提升香港作为国际金融中心的竞争力,目前正在研究包括延长交易时段在内的多项提升市场便利性的措施,但当前首要工作是研究延长衍生产品市场交易时段的建议,而不是股票交易时间。(中新经纬)

  • Kimi K3可能迎来DeepSeek时刻

    晨星公司表示,月之暗面新的Kimi K3模型可能迎来DeepSeek时刻。这一进步对整个AI生态系统是利好,因为最坏的情况是AI停止进步。尽管如此,月之暗面此次发布对整个硬件和基础设施领域的AI公司构成了下行压力,因为它以更低的价格提供了顶级的模型性能。(金十)

  • 中国国家主席习近平即将于9月对美国进行的访问仍在按计划进行

    7月20日,外交部发言人林剑主持例行记者会。有记者提问,美国国务卿鲁比奥表示,中国国家主席习近平即将于9月对美国进行的访问仍在按计划进行。请问,中国外交部是否认为此次访问仍在按计划进行? 林剑表示,元首外交对中美关系具有不可替代的战略引领作用。双方就年内元首的互动安排保持沟通。(北京青年报)

  • 伊拉克民兵武装:若美扩大“对伊朗侵略”将直接参战

    7月20日,伊拉克民兵武装“伊斯兰抵抗组织”20日发表声明说,如果美国进一步扩大“对伊朗的侵略”,该组织将直接参与对抗美国的战斗,并将坚决打击美国在伊拉克及中东地区的所有利益目标和军事基地。该组织在声明中特别澄清,在过去几天里未对伊拉克及中东地区的美军基地发动任何军事袭击。(新华国际)

  • 港交所回应考虑延长股票交易时间

    7月20日,市场传闻称“香港交易所考虑延长股票交易时间,取消午休时段”,对此,港交所回应称,香港交易所一直致力于提升香港作为国际金融中心的竞争力,目前正在研究包括延长交易时段在内的多项提升市场便利性的措施,但当前首要工作是研究延长衍生产品市场交易时段的建议,而不是股票交易时间。(中新经纬)

  • 伊朗外交部确认收到调解方提议 但未透露详情

    7月20日,当地时间7月20日,伊朗外交部发言人巴加埃在新闻发布会上确认收到了调解方的提议,但是拒绝透露详情。此外,巴加埃还强烈谴责美军对伊朗医疗中心、桥梁以及其他基础设施的袭击。(央视新闻)