零时科技 || 跨链桥Allbridge约57万美元损失事件分析

区块链安全 1年前 (2023) admin
295 0 0
零时科技 || 跨链桥Allbridge约57万美元损失事件分析



事件背景

零时科技区块链安全情报平台监控到消息,北京时间2023年4月1日,BSC链上Allbridge跨链桥受到黑客攻击,攻击者获利约57万美元,攻击者地址为0xc578d755cd56255d3ff6e92e1b6371ba945e3984,被盗资金转移至Tornado.cash混币平台。零时科技安全团队及时对此安全事件进行分析。



合约漏洞

合约中执行兑换操作函数swapToVUsd中计算兑换结果方式为合约中当前记录BUSD余额与计算转入token后的数量转换为BUSD的差值得到的,因此攻击者通过存取大量资金以及进行大量代币兑换实现对池子中代币价格控制。

零时科技 || 跨链桥Allbridge约57万美元损失事件分析



攻击步骤

1. 攻击者通过闪电贷借出7,500,000 BUSD

零时科技 || 跨链桥Allbridge约57万美元损失事件分析

2. 将 2,003,300 BUSD 兑换为 2,000,296 USDT,此时合约中 BUSD 余额为11,405,966,USDT余额为8,296,249

零时科技 || 跨链桥Allbridge约57万美元损失事件分析

3. 调用合约中deposit函数,向合约中存入 5,000,000 BUSD

零时科技 || 跨链桥Allbridge约57万美元损失事件分析

4. 此时攻击者地址剩余 496,700 BUSD,攻击者将剩余 BUSD 全部兑换为 USDT,共 495,488 个

零时科技 || 跨链桥Allbridge约57万美元损失事件分析

5. 将之前兑换得到的 2,000,296 USDT 存入合约

零时科技 || 跨链桥Allbridge约57万美元损失事件分析

6. 调用Allbridge Core: Bridge合约中swap函数,使用495,784 USDT 兑换 490,849 BUSD

零时科技 || 跨链桥Allbridge约57万美元损失事件分析

7. 取出之前存入的 4,830,999 BUSD

零时科技 || 跨链桥Allbridge约57万美元损失事件分析

8. 调用Allbridge Core: Bridge合约中swap函数,使用 40,000 BUSD 兑换出 789,632 USDT

零时科技 || 跨链桥Allbridge约57万美元损失事件分析

9. 将存入的资金提出,并将USDT兑换为BUSD

零时科技 || 跨链桥Allbridge约57万美元损失事件分析

10. 归还闪电贷

零时科技 || 跨链桥Allbridge约57万美元损失事件分析

攻击者此次攻击中共获利 549,874 BUSD



总结及建议

此次攻击是由于攻击者可以通过大额存取资金和进行兑换,从而修改交易池中代币的比例,实现用较少的BUSD兑换出大额USDT从而获利。

安全建议

  • 建议对合约中进行代币兑换的函数添加最大兑换比判断,避免当池子中代币数量差值较大时执行兑换产生较大损失。

  • 建议项目方上线前进行多次审计,避免出现审计步骤缺失

零时科技 || 跨链桥Allbridge约57万美元损失事件分析

往期内容回顾


原文始发于微信公众号(零时科技):零时科技 || 跨链桥Allbridge约57万美元损失事件分析

版权声明:admin 发表于 2023年4月6日 上午11:09。
转载请注明:零时科技 || 跨链桥Allbridge约57万美元损失事件分析 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...