Cointime

扫码下载App
iOS & Android

SharkTeam:合约精度计算漏洞与安全建议

近几个月,连续发生多起安全事件与合约开发过程中的价格精度计算漏洞有关,损失金额已超千万美元,MIM_SPELL 650万美元、RadiantCapital 450万美元、Onyx Protocol 210万美元等,均是因为计算时精度出现了问题导致关键变量计算错误从而被攻击。

SharkTeam将这类安全事件进行了总结,并给出行之有效的安全建议,希望后续协议可以引以为戒,保护用户加密资产安全。

1. MIM_SPELL攻击事件

发生时间:2024年1月30日,

损失金额:约650万美元,

漏洞原因:合约存在两个借贷变量elastic和base,在进行两者的精度计算时,都采用了向上取整的方式。这样操作会使本身计算结果应为0的参数最后计算得到为1,使两个参数之间的比例失衡,最终能够超额借出MIM代币。

详细分析:https://bit.ly/3ScR7TK

2. RadiantCapital攻击事件

发生时间:2024年1月2日,

损失金额:约450万美元,

漏洞原因:黑客利用了合约中对于新市场尚未进行初始化的漏洞,流动性指数并未初始化,使得黑客可以通过闪电贷函数来操纵其大小,当指数变大后,黑客利用rayDiv函数中的四舍五入精度问题,由于指数变大,通过四舍五入造成的精度损失上限同样变大,黑客重复进行存取操作获利。

3. Onyx Protocol攻击事件

发生时间:2023年11月11日,

损失金额:约210万美元,

漏洞原因:与RadiantCapital攻击事件类似,也利用了新市场尚未初始化流动性的漏洞,并且在divUint函数中存在四舍五入的漏洞造成精度损失。

详细分析:https://bit.ly/47cKeI6

4. WiseLending攻击事件

发生时间:2024年1月12日,

损失金额:约46.5万美元,

漏洞原因:合约在计算借贷份额时使用向上取整,攻击者利用这一点进行重复的存取操作来提高份额价格,份额价格提升后用自己的份额借走了大量的ETH。

5. HopeLend攻击事件

发生时间:2023年10月18日,

损失金额:约85万美元

漏洞原因:黑客最初利用目标资产对应的池中的流动性失衡,操纵与目标资产关联的hToken的流动性指数,扭曲其价值。随后,黑客利用极少量 hToken 的抵押品,借入了所有其他标的资产。此后,黑客同样利用合约分割操作中的rayDiv函数中存在的四舍五入漏洞,反复存入和提现,耗尽了在Hopelend攻击中投入的标的资产。

精度问题大体是分为两类:

1.一类是错误的向上取整,可能导致本应为0的参数取到了1,使后续计算出现严重漏洞;

2.第二类是四舍五入问题,其中尤为严重的是错误使用了rayDiv函数的项目。

安全建议:

1.针对第一类来说,如果项目逻辑需要向上取整操作,在取整变量为1或0等条件下进行多次多样的重复测试,

2.针对第二类可以采用先乘后除统一精度的方式,譬如使用10**18为后缀作为小数点后的数值。

3.无论是哪一种情况,对计算逻辑进行全方面测试,尽可能地考虑到每一种情况,尤其是在不同计算结果有不同的处理逻辑的时候,更需要慎重测试。理论上的逻辑设计与实际的代码实现相结合,全方位无死角的对合约函数进行测试。若测试用例可以覆盖各种变化情况,必然可以避免因为精度计算带来的安全性问题。

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

评论

所有评论

推荐阅读

  • 长三角一体化大模型发布 AI将为区域发展提供决策支撑

    长三角一体化大模型发布与场景应用链接大会在上海召开。会上,由中国区域经济50人论坛成员、上海财经大学长三角与长江经济带发展研究院执行院长张学良教授团队牵头建设的长三角一体化大模型(YRD-P1)正式发布。张学良表示,YRD-P1模型是在多年城市与区域科学研究积累的基础上构建的专用大模型。模型依托持续积累的政策文本、统计数据、学术成果、产业链信息及地理空间数据,面向长三角区域进行深度定制开发,强调知识体系的系统性、权威性和可溯源性,致力于为区域协调发展提供更加智能、精准、可持续的决策支撑工具。

  • 天普股份:公司涉嫌信息披露违规 股票将于1月12日复牌

    天普股份公告,公司因涉嫌信息披露违规,收到中国证监会下发的《立案告知书》和上海证券交易所的监管警示。公司股票将于2026年1月12日开市起复牌。公司目前生产经营活动正常,但股票价格短期波动较大,累计涨幅较大,已严重偏离上市公司基本面,存在巨大交易风险。2025年前三季度公司实现营业收入2.3亿元,同比下降4.98%;实现归属于上市公司股东的净利润1785.08万元,同比下降2.91%。

  • 日本首相考虑解散众议院,美元兑日元涨幅迅速走高

    日本首相考虑解散众议院。美元兑日元涨幅迅速扩大至 0.66%,报 157.95,创最近一年新高。

  • “美联储传声筒”Nick Timiraos:2025年私营部门雇主平均每月新增6.1万个就业岗位,这是自2003年所谓“无就业复苏”以来,私营部门就业增长最为疲弱的时期。

    “美联储传声筒”Nick Timiraos:2025年私营部门雇主平均每月新增6.1万个就业岗位,这是自2003年所谓“无就业复苏”以来,私营部门就业增长最为疲弱的时期。

  • 失业率意外下降重挫降息预期 债券交易员转看年中行动

    美国国债下跌,交易员几乎抹去了对美联储本月晚些时候降息的押注。此前,12月失业率的降幅超出预期,抵消了总体就业人数增长疲软的影响。周五报告发布后,美国政府债券价格下跌,推高了各期限收益率,涨幅多达3个基点。债券交易员维持了2026年全年总共降息两次的预测,预计首次降息将在年中进行。Natixis North America美国利率策略主管John Briggs表示:“对我们而言,美联储更关注失业率,而不是总体数据中的噪音。因此在我看来,这对美国利率略微利空。”此前,受10月1日至11月12日长达六周的政府停摆影响,9月、10月和11月的劳工报告推迟发布。此次就业数据提供了首份能够反映宏观经济就业趋势的“干净”读数。美联储是否进一步降息,被认为取决于未来几个月劳动力市场的表现。此前,为应对劳动力市场疲软,美联储在过去三次会议上均下调了短期贷款利率的目标区间。然而,部分官员仍对通胀高于目标感到担忧,这被视为限制了进一步宽松的步伐。

  • 高盛:美联储1月很可能按兵不动 但2026年剩余时间会降息两次

    金十数据1月9日讯,高盛资产管理公司多行业固定收益投资部门主管林赛·罗森纳评美国非农:再见了,一月!美联储目前很可能会维持现状,因为劳动力市场已显示出初步的稳定迹象。失业率的改善表明,11月的大幅上升只是由于个别员工因“推迟离职”政策而提前离职以及数据失真所致,并非系统性疲弱的迹象。我们预计美联储目前会保持不变的政策立场,但预计2026年剩余时间里还会再降息两次。

  • 市场交易员仍预期美联储将在2026年放松货币政策约50个基点。

    市场交易员仍预期美联储将在2026年放松货币政策约50个基点。

  • 互换市场认为美联储1月降息概率为零

    金十数据1月9日讯,美国失业率的下降使美联储在 1 月份降息的计划落空,目前利率互换合约认为这种情况发生的概率为零。

  • 美国12月非农就业数据不及预期 失业率微降难掩劳动力市场恶化趋势

    美国劳工统计局周五公布的数据显示,12月新增就业岗位5万个,低于经济学家预测的6万个。失业率降至4.4%,而11月为4.6%。在11月和10月数据因政府停摆受到严重影响后,此次发布的数据提供了数月来最完整的美国就业市场图景。11月新增就业人数数据被下修至5.6万个,初值为6.4万个。此次数据发布进一步证实了劳动力市场的恶化迹象,联邦政府劳动力削减和私营部门招聘放缓已对其造成冲击。美联储在过去三次会议上均下调了美国借贷成本,将其基准目标利率区间维持在3.5-3.75%的三年低点。美联储鲍威尔在12月曾暗示进一步降息的门槛很高,称目前的借贷成本已“处于良好位置”。但疲软的12月数据可能使美联储在本月晚些时候的下次会议上暂停降息周期的理由变得复杂。美联储还对近期劳工统计局数据的准确性提出了担忧,鲍威尔认为,美国经济每月新增就业岗位比就业报告所声称的少6万个。

  • 市场交易员预计美联储在1月降息的可能性几乎为零。

    市场交易员预计美联储在1月降息的可能性几乎为零。