2021 年 9 月 12 日,雪崩协议(Avalanche)上 Zabu Finance项目遭受闪电贷攻击,安全团队第一时间介入分析,笔者慢雾科技将透过这篇文章将分析结果分享如下。
(前情提要:台湾Defi | Cream Finance再遭闪电贷骇客攻击,损失1,800万美元的 ETH, AMP)
(事件背景:Defi 科普 | 一文了解雪崩协议 Avalanche (AVAX),7天涨幅超过200%)
Zabu Finance 是 Avalanche 上的下一代去中心化金融(DeFi) 项目。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 代币进行了抛售。
Leave a Reply