Beosin:Polygon链上LibertiVault合约遭攻击因其存在重入漏洞

2023/07/11 18:35

Odaily星球日报讯 据Beosin旗下Beosin EagleEye监测显示,Polygon链上LibertiVault合约遭遇攻击,损失约123枚ETH和56,234枚USDT,价值约29万美元;以及以太坊链上35枚ETH和96223枚USDT价值,约16万美元,总共超45万美元。技术人员分析发现,本次攻击是由于LibertiVault合约存在重入漏洞所导致。

1. 攻击者使用闪电贷借出500万USDT,调用LibertiVault合约deposit函数进行质押,其质押逻辑会将质押的代币一部分用于兑换,然后再计算铸币数量,铸币数量是根据和合约本次存入代币量与合约存入之前的余额比例来进行计算的。

2. 而兑换操作swap会调用黑客的合约,此时黑客第一次重入调用deposit,并在此函数中二次重入,向合约打入250万USDT。

3. 二次重入结束后,合约会按照250万USDT与之前合约的USDT余额比值为黑客铸币,第一次重入的deposit函数运行结束后,黑客又向其中打入了250万USDT。

4. 此时,执行完了外层deposit函数中的兑换操作,合约又会按照250万USDT与合约USDT余额比值进行铸币。

5. 问题就出在第四点,按理来说,第二次计算合约余额应该是之前的余额加上第一次打入的250万余额来作为本次计算的参数,但这里是使用的重入的形式,合约余额在最开始就已经获取了,所以参数并未改变,还是使用的原来的余额进行计算,导致给黑客铸了大量的凭证代币。

6. 最后黑客移除凭证代币,归还闪电贷获利。

最新快讯
14:24
2025年Q1美国AI领域融资达200亿美元,大幅领先加密行业的8.61亿美元
14:04
IRISnet计划于3月30日进行主网4.0升级,引入跨链NFT功能
13:41
Gate.io上线OBT永续合约,最高支持50倍杠杆
13:40
交易员Eugene:已将ETH剔除出投资组合,SOL关键支撑位在80美元,BTC预计在74000至76000美元区间获得支撑
13:37
俄罗斯在对印石油贸易中使用加密货币以规避西方制裁
推荐阅读