慢雾分析 Zabu Finance 遭闪电贷攻击:抵押模型与 SPORE 代币不兼容所致

区块链指南消息,2021 年 9 月 12 日,Avalanche 上 Zabu Finance 项目遭受闪电贷攻击,慢雾安全团队针对此过程进行分析,具体攻击步骤如下:

  1. 攻击者首先创建两个攻击合约,随后通过攻击合约 1 在 Pangolin 将 WAVAX 兑换成 SPORE 代币,并将获得的 SPORE 代币抵押至 ZABUFarm 合约中,为后续获取 ZABU 代币奖励做准备;
  2. 攻击者通过攻击合约 2 从 Pangolin 闪电贷借出 SPORE 代币,随后开始不断的使用 SPORE 代币在 ZABUFarm 合约中进行「抵押 / 提现」操作。由于 SPORE 代币在转账过程中需要收取一定的手续费 (SPORE 合约收取),而 ZABUFarm 合约实际接收到的 SPORE 代币数量是小于攻击者传入的抵押数量的。分析中慢雾注意到 ZABUFarm 合约在用户抵押时会直接记录用户传入的抵押数量,而不是记录合约实际收到的代币数量,但 ZABUFarm 合约在用户提现时允许用户全部提取用户抵押时合约记录的抵押数量。这就导致了攻击者在抵押时 ZABUFarm 合约实际接收到的 SPORE 代币数量小于攻击者在提现时 ZABUFarm 合约转出给攻击者的代币数量;
  3. 攻击者正是利用了 ZABUFarm 合约与 SPORE 代币兼容性问题导致的记账缺陷,从而不断通过「抵押 / 提现」操作将 ZABUFarm 合约中的 SPORE 资金消耗至一个极低的数值。而 ZABUFarm 合约的抵押奖励正是通过累积的区块奖励除合约中抵押的 SPORE 代币总量参与计算的,因此当 ZABUFarm 合约中的 SPORE 代币总量降低到一个极低的数值时无疑会计算出一个极大的奖励数值;
  4. 攻击者通过先前已在 ZABUFarm 中有进行抵押的攻击合约 1 获取了大量的 ZABU 代币奖励,随后便对 ZABU 代币进行了抛售;

此次攻击是由于 Zabu Finance 的抵押模型与 SPORE 代币不兼容导致的,此类问题导致的攻击已经发生的多起,慢雾安全团队建议项目抵押模型在对接通缩型代币时应记录用户在转账前后合约实际的代币变化,而不是依赖于用户传入的抵押代币数量。

参考:
攻击合约 1:0x0e65Fb2c02C72E9a2e32Cc42837df7E46219F400
攻击合约 2:0x5c9AD7b877F06e751Ee006A3F27546757BBE53Dd
抵押交易:0xf76b37ed46c218d4b791e9769b139c3e1f43d1888f37ff0a647c7a8bb58528fb
攻击交易:0x0d65ce5c7a0c072b14ec5da08488d07778f334a7ddb6b7a30df97f274f3e1eb3
获利交易:0x8b3042e55a63f39bb388240a089cf4d51e59abe7cb0bff303c6dbb19eaeb75ac

区块链快讯

固定利率借贷协议 Pledge 将推出 Polygon 版本

2021-9-11 16:50:22

区块链快讯

Glassnode 数据:BTC 已实现市值再创历史新高,达 3931 亿美元

2021-9-12 23:58:09

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索