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

评论

所有评论

推荐阅读

  • DDC增持50枚比特币,总持有量达2118枚

    DDC Enterprise Limited宣布增购50枚比特币,总持有量达到2118枚。这是DDC连续第七周增持比特币,目前在全球上市公司比特币持有量排名中位列第34位。

  • Artemis:以太坊ETF资产管理规模在四个月内已蒸发约65%

    Artemis在X平台发布最新数据显示,现货以太坊ETF资产管理规模(AUM)在约四个月内缩水近65%。数据显示,以太坊ETF规模自约306亿美元峰值降至当前约107亿美元,较高点蒸发近三分之二,回撤幅度显著。与此同时,比特币ETF表现亦承压。数据显示,比特币ETF资产规模较峰值回落约49%,虽跌幅小于以太坊ETF,但同样面临资金持续流出压力。分析认为,AUM大幅缩水主要受价格回调及资金净流出双重影响,反映机构资金在当前宏观与市场环境下趋于防御。

  • 美国联邦住房金融局局长:房利美、房地美"非常有可能"今年上市

    美国联邦住房金融局局长普尔特:房利美、房地美"非常有可能"今年上市。房利美、房地美估值在5000亿至7000亿美元。

  • Circle发布2025财报:总收入和储备金收入增长64%达27亿美元

    美股上市公司Circle发布2025财年业绩报告,其中披露截至2025年末的USDC流通量为753亿美元,增长72%;2025年第四季度USDC链上交易量为11.9万亿美元,增长247%;2025财年总收入和储备金收入为27亿美元,增长64%。Circle还表示其持续经营业务净亏损达到7000万美元,主要受首次公开募股(IPO)相关股权激励支出4.24亿美元的影响,而2024财年持续经营业务净利润为1.57亿美元。此外,Circle宣布Circle Payments Network (CPN)已有55家金融机构注册,另有74家金融机构正在接受资格审查;Arc公共测试网已上线,吸引了超过100家参与者。

  • BTC跌破66000美元

    行情显示,BTC跌破66000美元,现报65987.14美元,24小时涨幅达到2.57%,行情波动较大,请做好风险控制。

  • Ju.com 8 折打新 BTC 回归!第 7 期 2 月 25 日 16:00 开抢!

    Ju.com 公布第 7 期打新币种调整安排:基于用户反馈与参与意愿调研,原计划 DOGE 专场调整为 BTC 专场,以更好满足用户对核心主流资产的配置需求。第 7 期 BTC 将于 2 月 25 日 16:00 正式上线,支持 USDT/BTC/ETH/SOL/BNB/JU 以 8 折价格参与认购,参与无门槛,平台表示将进一步提升活动参与体验。

  • Ju.com 推出「Web3 创业者扶持计划」

    Ju.com 公告称,为助力优质项目高效链接全球流量生态、共建安全稳健可持续的数字资产交易体系,平台正式推出 Web3 创业者扶持计划,面向全球招募 100 家优质机构、项目方及战略合作伙伴,按“先申请、先审核、先开通”执行,额满即止。

  • Ju.com 8 折打新 LTC 收官,第 7 期 DOGE 2 月 25 日 16:00 开抢!

    Ju.com 春节「十连发」主流币 8 折打新第 6 期 LTC 已于 2 月 24 日 16:00 收官。本期参与人数11,500人,参与活动资金约5千万美元,整体超募610%,其中 USDT 池超募约725%。认购资产结算后无锁仓,到账即现货,可直接卖出或提现。

  • BTC跌破65000美元

    行情显示,BTC跌破65000美元,现报64955.34美元,24小时跌幅达到4.62%,行情波动较大,请做好风险控制。

  • 现货黄金失守4900美元

    现货黄金回落至4900美元/盎司下方,日内跌1.78%。