Polygon链上LibertiVault合约遭遇攻击分析

WB3交流加微信:WX-93588,⬅️此处为全站广告位,与正文项目无关
注册并登录App即可领取高达 60,000 元的数字货币盲盒:点击此处注册OKX

据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、预警与阻断平台监测显示,Polygon链上LibertiVault合约遭遇攻击,损失约123ETH和56,234USDT价值约29万美元,以及以太坊链上35ETH和96223USDT价值约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、最后黑客移除凭证代币,归还闪电贷获利。

此时快讯

【Polygon PoS链已成功执行Indore硬分叉】7月11日消息,Polygon PoS区块链已于今日在区块高度44934656成功执行Indore硬分叉。此次硬分叉是Inborg更新的一部分。Inborg由两个不同的提案组成: 
Indore(PIP-12),几个小时前已执行,目的是通过更新State Sync机制来提高网络稳定性并消除潜在的BADBLOCK错误;Aalborg(PIP-11),将于下个月执行,将通过里程碑的概念和双客户端架构的引入加快网络最终确定的速度。 
据此前报道,Polygon发布Bor v0.4.0主网,该版本包括名为Indore fork的硬分叉,定于区块高度44934656更新,预计时间为7月11日中午12点(UTC+8)。
版权声明:本文收集于互联网,如有侵权请联系站长删除。
转载请注明:Polygon链上LibertiVault合约遭遇攻击分析 | 币百度

相关文章