进行外部合约调用时,建议增加白名单,禁止任意的合约调用
12月21日,链必应-区块链安全态势感知平台舆情监测显示,Uniswap V3流动性管理协议Visor Finance于北京时间12月21日晚上10点18分遭受攻击,总损失约为820万美元。关于本次攻击,成都链安技术团队第一时间进行了事件分析。
#1 事件概览
2021 年 12 月 21 日晚 Visor Finance 官方 Twiiter 发布通告称 vVISR 质押合约存在漏洞,发文前已有攻击交易上链。
经过成都链安技术团队分析,攻击者通过恶意合约利用Visor Finance项目的漏洞,伪造了向Visor Finance的抵押挖矿合约(0xc9f27a50f82571c1c8423a42970613b8dbda14ef)存入2亿代币的交易,从而获取了195,249,950 vVISR抵押凭证代币。然后再利用抵押凭证,从抵押挖矿合约中取出了8,812,958 VISR。
#2 事件具体分析
攻击交易为:
https://etherscan.io/tx/0x69272d8c84d67d1da2f6425b339192fa472898dce936f24818fda415c1c1ff3f
攻击手法大致如下:
1. 部署攻击合约
0x10c509aa9ab291c76c45414e7cdbd375e1d5ace8;
2. 通过攻击合约调用Visor Finance项目的抵押挖矿合约deposit函数,并指定存入代币数量visrDeposit为1亿枚,from为攻击合约,to为攻击者地址
0x8efab89b497b887cdaa2fb08ff71e4b3827774b2;
3. 在第53行,计算出抵押凭证shares的数量为97,624,975 vVISR.
4. 由于from是攻击合约,deposit函数执行第56-59行的if分支,并调用攻击合约的指定函数;
(1)第57行,调用攻击合约的owner函数,攻击合约只要设置返回值为攻击合约地址,就能够通过第57行的检查;
(2)第58行,调用攻击合约的delegatedTransferERC20函数,这里攻击合约进行了重入,再次调用抵押挖矿合约的deposit函数,参数不变,因此抵押挖矿合约再次执行第3步的过程;
(3)第二次执行到第58行时,攻击合约直接不做任何操作;
5. 由于重入,抵押挖矿合约向攻击者发放了两次数量为97,624,975 vVISR的抵押凭证,总共的抵押凭据数量为195,249,950 vVISR。
6. 提现
攻击者通过一笔withdraw交易
(0x6eabef1bf310a1361041d97897c192581cd9870f6a39040cd24d7de2335b4546),将195,249,950 vVISR兑换为8,812,958 VISR,当时抵押挖矿合约中共有9,219,200 VISR。
7. 通过UniswapV2,攻击者将5,200,000 VISR兑换为了WETH,兑换操作将UniswapV2中ETH/VISR交易对的ETH流动性几乎全部兑空,随后攻击者将获得的133 ETH发送到Tornado。
#3 事件复盘
本次攻击利用了Visor Finance项目抵押挖矿合约RewardsHypervisor的两个漏洞:
1. call调用未对目标合约进行限制,攻击者可以调用任意合约,并接管了抵押挖矿合约的执行流程;<- 主要漏洞,造成本次攻击的根本原因。
2. 函数未做防重入攻击;<- 次要漏洞,导致了抵押凭证数量计算错误,不是本次攻击的主要利用点,不过也可凭此漏洞单独发起攻击。
针对这两个问题,成都链安在此建议开发者应做好下面两方面防护措施:
1. 进行外部合约调用时,建议增加白名单,禁止任意的合约调用,特别是能够控制合约执行流程的关键合约调用;
2. 函数做好防重入,推荐使用openzeppelin的ReentrancyGuard合约。
本文链接:https://www.8btc.com/media/6717824
转载请注明文章出处
免责声明:
本文观点仅代表作者个人观点,不构成本平台的投资建议,本平台不对文章信息准确性、完整性和及时性作出任何保证,亦不对因使用或信赖文章信息引发的任何损失承担责任
白话区块链早报:Solana市值超过索尼和美敦力,全球资产市值排名升至第165位
Memecoins 是本次牛市获利的跳板吗?
美FBI调查欺诈性交易平台Bitkanant涉及500万美元加密货币杀猪盘案件
香港立法会议员严刚:香港应在虚拟资产交易的定价权上获得一定分量发言权
什么是加密叙事?2024 年热门叙事盘点
btc行情指标_BTC合约如何规避爆仓
伯恩斯坦:Robinhood 有望成为美国加密货币监管放松的最大受益者
山东矿机是A股吗_无人机在A股及创业板市场有哪些上市公司
元宇宙是人类的光墓吗_声势浩大的元宇宙它到底是个什么
白话区块链早报:比特币今晨上行触及98,668美元,续刷历史新高
0.00