2022年6月8日,成都链安链必应-区块链安全态势感知平台舆情监测显示,GYM Network的GymSinglePool合约遭受黑客攻击,黑客获利约 216万美元。成都链安技术团队第一时间对事件进行了分析,结果如下。
#1 项目相关信息
据悉,GYM NETWORK是一个DeFi聚合投资系统,本次是其GymSinglePool合约遭受黑客攻击。
#2 事件相关信息
攻击交易:
https://bscscan.com/tx/0x8432c1c6613995eeea8a3ae2cfeb9577913db6b7b35dbe26a8c56c02066096e6
攻击者地址:
0xb2c035eee03b821cbe78644e5da8b8eaa711d2e5
攻击合约:
0x7cbfd7bccd0a4a377ec6f6e44857efe42c91b6ea
0xa796406635272448fa30089cd4d71dadae01c169
0xd36Ea4756cf157c1A57BFFC8d3F064a1e0EFBE9f
0x8aedf4e03f70d0680b760a63c1b4acb0eb437874
0x2cdb504CEFE087e00F13F9283F2FcbbdE7C2A28D
被攻击合约:
0xA8987285E100A8b557F06A7889F79E0064b359f2
0x0288fba0bf19072d30490a0f3c81cd9b0634258a
#3 攻击流程
第一步,攻击者调用GymSinglePool合约的depositFromOtherContract函数恶意抵押了8,000,000 GYM代币。
第二步,由于depositFromOtherContract函数中的_autoDeposit函数并没有对抵押的代币进行转账处理,所以攻击者并没有花费任何代币,就完成了记账。
第三步,攻击者调用withdraw函数凭空提取记账的抵押代币,完成了攻击。
#4 漏洞分析
本次攻击主要利用了depositFromOtherContract函数仅计入了抵押者的抵押账本,并没有对抵押代币进行转账检查的bug,并且攻击者可以调用depositFromOtherContract函数进行恶意抵押,最后凭空提取GYM代币。
#5 资金追踪
截止发文时,攻击者攻击获利的2000个BNB转进了混币工具Tornado Cash,3000BNB存放在攻击账户中,价值70W美元的ETH通过跨链桥转入到以太坊
0xb2c035eee03b821cbe78644e5da8b8eaa711d2e5 地址中。
#6 总结
针对本次事件,成都链安技术团队建议:
项目方在用户的代币抵押记账之前进行转账检查。此外建议项目上线前选择专业的安全审计公司进行全面的安全审计,规避安全风险。