SharkTeam独家分析 | 重入攻击:Uniswap V3流动性协议Visor Finance被黑事件分析
source link: https://www.tuoniaox.com/news/p-521075.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
SharkTeam独家分析 | 重入攻击:Uniswap V3流动性协议Visor Finance被黑事件分析
12月21日晚Visor Finance遭受攻击,总损失约为820万美元
北京时间12月21日晚上10点18分,Uniswap V3流动性管理协议Visor Finance遭受攻击,总损失约为820万美元。
SharkTeam第一时间对此事件进行了攻击分析和技术分析,并总结了安全防范手段,希望后续的区块链项目可以引以为戒,共筑区块链行业的安全防线。
一、事件分析
攻击过程如下:
1. 部署攻击合约
交易:0xbe65cb0dd9f4619939cfeb56b3ef3a996e2b028b93fd66443abfa06d6df8e58d
攻击合约:0x10C509AA9ab291C76c45414e7CdBd375e1D5AcE8
2.发起攻击
攻击交易为0x69272d8c84d67d1da2f6425b339192fa472898dce936f24818fda415c1c1ff3f,详细的攻击过程如下:
在攻击过程中,发生了重入攻击,而且发生在deposit函数中,deposit函数如下:
调用deposit函数的合约是攻击合约,参数如下:
visrDeposit是存入的指定Token的数量,from是攻击合约,to是攻击者账户地址。
交易0x27f2210536553392cf180c0b37055b3dc92094a5d585d7d2a51f790c9145e47c 将攻击合约中的owner 修改为攻击合约。
因此可以通过owner地址的校验,然后在调用攻击合约中的delegatedTransferERC20函数时发生重入攻击,再次调用了deposit函数且参数不变,从而重复铸造了97624975 vVISR的份额代币。
3. 提取Token
交易:0x6eabef1bf310a1361041d97897c192581cd9870f6a39040cd24d7de2335b4546
由195249950 vVISR的份额代币提取出8812958 VISR。
4. 兑换Token
利用UniswapV2 将 VISR 兑换成 ETH。
以交易0x86d2689eeb9b1dd233e6a9ab62ffa16ecdedff55ea5f6f10571432cf9830d907为例,将300000 VISR 兑换成 32.93 WETH。
通过Tornado平台进行混币。
本次Visor Finance被攻击的根本原因在于deposit函数调用合约校验逻辑出现漏洞,建议合约中使用白名单机制,限制合约调用地址。另外,关键函数如deposit必须添加重入锁,比如使用openzeppelin的ReentrancyGuard,防止重入攻击。
二、安全建议
SharkTeam提醒您,在涉足区块链项目时请提高警惕,选择更稳定、更安全,且经过完备多轮审计的公链和项目,切不可将您的资产置于风险之中,沦为黑客的提款机。
SharkTeam作为领先的区块链安全服务团队,为开发者提供智能合约审计服务。智能合约审计服务由人工审计和自动化审计构成,满足不同客户需求,独家实现覆盖高级语言层、虚拟机层、区块链层、业务逻辑层四个方面近两百项审计内容,全面保障智能合约安全。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK