零时科技 || BXH攻击事件分析

0x1 事件背景

零时科技区块链安全情报平台监控到消息,北京时间2022年9月29日,BXH合约遭到黑客攻击,损失超40,085 BUSD, 零时科技安全团队及时对此安全事件进行分析。

零时科技 || BXH攻击事件分析

0x2 攻击信息

  • 攻击者地址:

0x81c63d821b7cdf70c61009a81fef8db5949ac0c9

  • 攻击者合约地址:

0x4e77df7b9cdcecec4115e59546f3eacba095a89f

  • 被攻击合约地址:

0x27539b1dee647b38e1b987c41c5336b1a8dce663

 

0x3 攻击步骤

1. 调用deposit()函数向合约转移 5,582 VUSDT

零时科技 || BXH攻击事件分析

2. 攻击者通过闪电贷借出 3,178,800 BUSD

零时科技 || BXH攻击事件分析

3. 将 3,148,800 BUSD 兑换为 148,851 BXHToken

零时科技 || BXH攻击事件分析

4. 向被攻击合约转移 200BUSD

零时科技 || BXH攻击事件分析

5. 调用depositIToken函数中getITokenBonusAmount()函数,计算得到 40,085 BUSD奖励

零时科技 || BXH攻击事件分析

6. 将兑换得到的BXHToken 兑换为 BUSD 并归还闪电贷

零时科技 || BXH攻击事件分析

0x4 漏洞核心

攻击者通过闪电贷借出大量BUSD,兑换为BXHToken,使得池子中BUSD 瞬间增大,在计算获得的奖励时由于会与BUSD数量做乘法,使得获得奖励也会成倍增加。

零时科技 || BXH攻击事件分析

0x5 资金流向

兑换为BNB 转移至混币平台

零时科技 || BXH攻击事件分析
零时科技 || BXH攻击事件分析

0x6 总结及建议

此次攻击主要原因是在计算奖励时会与池子中BUSD的数量相乘,当池子中USDT数量增加时,获得的奖励相应增加。攻击者通过闪电贷向池子中转移大量BUSD,使得计算出的奖励增加从而获利。

安全建议

  • 建议计算中涉及数值引用及乘除法计算时详细检查,避免出现计算数值受引用数值较大影响的情况发生。
  • 建议项目方上线前进行多次审计,避免出现审计步骤缺失。
零时科技 || BXH攻击事件分析