损失约1000万美元,Beosin Trace对LI.FI事件进行追踪分析

Beosin
Beosin 机构得得号

Jul 17 Beosin是总部位于新加坡的全球知名区块链安全公司,为区块链生态提供代码安全审计,安全风险监控、预警与阻断,虚拟资产被盗追回,KYT/AML等“一站式”安全产品+服务,已为全球2000多个区块链企业服务,保护客户资产5000多亿美元。

摘要: 据Beosin Alert监控预警发现跨链协议LI.FI遭受攻击,攻击者利用项目合约中存在的call注入漏洞,盗取授权给合约的用户资产。

 

2024年7月16日,据Beosin Alert监控预警发现跨链协议LI.FI遭受攻击,攻击者利用项目合约中存在的call注入漏洞,盗取授权给合约的用户资产。Beosin对本次事件第一时间进行了分析。

详细攻击步骤:

攻击者地址:

0x8B3Cb6Bf982798fba233Bca56749e22EEc42DcF3

被攻击合约:

0x1231DEB6f5749EF6cE6943a275A1D3E7486F4EaE

(1)攻击者部署合约0x588E7e8E522eD4Dd8DaD263bD72208B099250114,以此来充当伪造的资产合约,为后续攻击做下准备。

(2)发动攻击,直接调用LI.FI主合约的depositToGasZipERC20函数。因为LI.FI是Diamond模式,它会delegatecall到GasZipFacet合约上的depositToGasZipERC20函数。

(3)在GasZipFacet合约上的depositToGasZipERC20函数中,call调用的地址和参数均是可以被攻击者指定,所有攻击者指定了callTo地址为USDT和USDC等资产,而call的data被指定为调用transferFrom函数,此次就可以将授权给合约账户的资产转移出去。

漏洞原因:

LI.FI项目合约存在一个depositToGasZipERC20函数,可将指定代币兑换为平台币并存入GasZip合约,但是在兑换逻辑处的代码未对call调用的数据进行限制,导致攻击者可利用此函数进行call注入攻击,提取走给合约授权用户的资产。

本次事件除了call注入的合约漏洞外,还有一点值得注意,那就是Diamond模式下,Facet合约的配置问题。进一步分析发现,GasZipFacet合约是在5天前部署,并在十多个小时前,由项目的多签管理员在LI.FI主合约进行注册的。

所以,通过这次事件可以发现,对于Diamond这类可升级模式,新增功能合约的安全性也需要得到高度重视。

Beosin Trace对被盗资金进行追踪发现,损失金额包括633.59万USDT、319.19万USDC、16.95万DAI,约1000万美元。攻击发生在ETH以及Arbitrum这两条链上,目前大部分资金转为ETH暂无新的动向,Beosin 已将黑客相关地址加入黑地址库,后续将持续保持追踪关注。

7月16日,LI.FI发文称又发现了4个安全漏洞,所有与LI.FI协议交互的用户资金现在都处于危险之中,敦促所有用户立即撤销权限。

以下是目前Beosin整理的一部分被盗用户信息,请用户查阅账户安全性,Revoke.cash已经发布了漏洞检查工具,用户可以快速检查自己(的地址)是否受到影响。目前已知主要受影响的是以太坊网络,其他链上的部分合约也存在类似问题。

Beosin作为全球最早一批从事形式化验证的区块链安全公司,主打”安全+合规“全生态业务,在全球10多个国家和地区设立了分部,业务涵盖项目上线前的代码安全审计、项目运行时的安全风险监控与阻断、被盗追回、虚拟资产反洗钱(AML)以及符合各地监管要求的合规评估等“一站式”区块链合规产品+安全服务。欢迎点击公众号留言框,与我们联系。

BeosinBeosin作为一家全球领先的区块链安全公司,已在全球10多个国家和地区设立了分部,为区块链生态提供代码安全审计,安全风险监控、预警与阻断,虚拟资产被盗追回,KYT/AML等“一站式”安全产品+服务,保护客户资产高达5000多亿美元。

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 Beosin 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信