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

评论

所有评论

推荐阅读

  • 日本央行行长植田和男:目前没有立即加息的必要

    Cointime 报道,4月28日,日本央行行长植田和男:目前没有立即加息的必要。

  • 字节、智谱、阿里入选《时代》AI影响力十强

    Cointime 报道,4月28日,《时代》今日公布“2026年最具影响力10家人工智能公司”名单。与单纯比较模型能力不同,这份名单更强调对产业、技术路径与社会影响的综合塑造力。入选公司有字节跳动、亚马逊、智谱、OpenAI、Alphabet、Meta、Anthropic、阿里巴巴、Mistral和Hugging Face。其中,国内公司占据三席,分别为字节、智谱和阿里。(东新社)

  • 中共中央政治局会议:全面实施“人工智能+”行动,发展智能经济新形态,完善人工智能治理

    Cointime 报道,4月28日,中共中央政治局4月28日召开会议,分析研究当前经济形势和经济工作。会议强调,要加快建设现代化产业体系,保持制造业合理比重。纵深推进全国统一大市场建设,深入整治“内卷式”竞争。全面实施“人工智能+”行动,发展智能经济新形态,完善人工智能治理。进一步深化国资国企改革。系统应对外部冲击挑战,提高能源资源安全保障水平,以高质量发展的确定性应对各种不确定性。(东新社)

  • Arthur Hayes:更关心美联储主席提名人沃什关于资产负债表的言论,而非短期利率走向

    Cointime 报道,4月28日, BitMEX创始人Arthur Hayes在Bitcoin 2026大会上谈到美联储时表示,“当凯文·沃什被提名为美联储SEC主席时,所有人都开始抓狂,因为在他担任美联储理事的任期内——我认为是从08年金融危机后直到本届总统之前——他一直对美联储非常庞大的资产负债表持批评态度。他曾公开表示,他认为美联储的资产负债表太大了,他必须想办法缩小它,与此同时,他也能够降低利率。现在,如果你读过我的文章,你就知道我是货币数量比其价格更重要的坚定拥护者。所以,我更关心他关于资产负债表的言论,而不是短期利率的走向。因此,如果市场认为,因为沃什在美联储的所作所为,系统中流通的美元流动性将会减少,那么他们就会看空比特币和其他风险资产。这就是我们在媒体上看到的关于沃什5月接任后将出现的鹰派美联储的讨论。现在,我不这么认为。我相信,本质上美联储会用储备、国债和回购进行置换,并将它们放入商业银行系统,而他们将在新法规的帮助下做到这一点,这些法规涉及银行如何在其资产负债表上持有资产以及他们需要为这些资产持有多少资本。最后,我认为要理解沃什在美联储会做什么或不会做什么,最重要的一点是,他有一个非常实质性的硬性约束,那就是他需要与财政部的斯科特·贝森特合作,确保他对美联储资产负债表的任何操作都不会损害贝森特出去出售数十亿、上万亿美元债券的能力。”

  • 消息称Meta为撤销收购Manus做准备 腾讯等投资者计划配合

    Cointime 报道,4月28日,据华尔街日报援引知情人士称,在中国发改委下属外商投资安全审查工作机制办公室依法对外资收购Manus项目作出禁止投资的决定后,Meta正在为不得不撤销该收购交易做准备。知情人士称,如果Meta推进撤销该交易的进程,包括腾讯、红杉中国以及真格基金在内的多家Manus前亚洲投资者已计划进行配合。

  • 美国现货比特币ETF昨日净流出2.632亿美元

    Cointime 报道,4月28日,据Farside Investors监测数据,美国现货比特币ETF昨日净流出2.632亿美元。

  • 美国现货以太坊ETF昨日净流出5040万美元

    Cointime 报道,4月28日,据Farside Investors监测数据,美国现货以太坊ETF昨日净流出5040万美元。

  • 日本央行维持利率不变 符合预期

    Cointime 报道,4月28日,日本央行连续第三次会议将目标利率维持在0.75%不变,符合市场预期。

  • DeFi United已募集超13.2万枚ETH 可完全覆盖Kelp DAO被攻击损失

    Cointime 报道,4月28日最新数据显示,Aave为应对Kelp DAO被盗事件发起的DeFi United已经募集到超3亿美元的13.2万枚ETH,已经完全覆盖Kelp DAO被攻击增发的2.92亿美元rsETH损失。目前的主要救助者有:Arbitrum DAO 追回的30765枚ETH;Consensys和起创始人Joseph Lubin提供的30000枚ETH;Mantle的30000枚ETH;Aave DAO的25000枚ETH;Aave创始人Stani Kulechov的5000枚ETH;Ether.Fi的5000枚ETH;Lido的2500枚ETH;Kelp的2000枚ETH Golem Foundation的1000枚ETH;Aave工程高级副总Emilio Frangella的500枚ETH;BGD Labs和起联创Ernesto的350枚ETH。

  • 伊朗据称已开始使用废弃油罐储存石油

    Cointime 报道,4月28日,据华尔街日报,由于美国海军实施封锁、谈判仍陷僵局,伊朗正急于寻找新的石油储存方法,以避免毁灭性停产。随着石油在国内堆积,伊朗正在重启被称为“垃圾储存”的废弃场地,使用简易容器,并试图通过铁路继续出口。这些非常规措施旨在推迟基础设施危机的发生,并削弱美国在霍尔木兹海峡对峙中的筹码。