事件背景
零时科技区块链安全情报平台监控到消息,北京时间 2022 年 10 月 12 日,TempleDAO 项目遭受黑客攻击。损失超 237 万美元,零时科技安全团队及时对此安全事件进行分析。
攻击信息
攻击者地址:
0x9c9Fb3100A2a521985F0c47DE3B4598dafD25B01
0xd3127a793dAF3AA9424525E893B494D17e798d39
攻击者合约地址:
0x2Df9c154fe24D081cfE568645Fb4075d725431e0
被攻击地址:
0xd2869042e12a3506100af1d192b5b04d65137941
攻击交易:
0x8c3f442fc6d640a6ff3ea0b12be64f1d4609ea94edd2966f42c01cd9bdcf04b5
攻击步骤
1. 攻击者创建攻击合约和 oldStaking 合约
2. 调用 migrateStake()函数,将传入参数设置为攻击者控制的合约地址,将质押金额同步至新合约
3. 调用 withdrawAll 函数将资金全部取出
4. 将获得的 321,154 StaxLP 代币兑换为 1,830 ETH
漏洞核心
在 migrateStake()函数中传递的旧的质押地址是由用户自己传入的,在函数中没有对于传入地址的判断,因此攻击者将 oldStaking 的地址设置为自己控制的合约地址,调用自己合约中的 migrateWithdraw()函数,绕过对于质押资金判断,之后执行 withdrawall 操作成功取出所有资金。
由传入参数可知地址 oldStaking 确实是由攻击者创建的
资金来源及流向
初始资金由 Binance 交易所转入用作手续费
攻击者将获利资金转移至地址 0x2B63d4A3b2DB8AcBb2671ea7B16993077F1DB5A0 后目前资金未移动
总结及建议
此次攻击核心主要是新合约在与旧合约同步时没有对于传入的合约地址进行判断。使得攻击者能够传入自己控制的地址进而绕过旧合约中对于质押的判断,直接在新的合约中获得想要的质押数量,之后将质押取出获利。
安全建议
建议对方法传参地址进行严格判断
建议项目方上线前进行多次审计,避免出现审计步骤缺失
零时
往期内容回顾
零时科技 | Nomad 跨链桥被盗 1.8 亿美元事件分析
零时科技 | Audius 金库 1850 万枚 AUDIO 被盗事件分析
零时科技联合创始人黄鱼先生受邀对话《Web3 应用创新与生态安全》
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。