前言
北京时间 10 月 20 日晚,知道创宇区块链安全实验室 监测到 BSC 链上的 DeFi 协议 PancakeHunny 的 WBNB/TUSD 池遭遇闪电贷攻击,HUNNY 代币价格闪崩。实验室第一时间跟踪本次事件并分析。
分析
攻击者信息
攻击者:
0x731821D13414487ea46f1b485cFB267019917689
攻击合约:
0xa5312796DC20ADd51E41a4034bF1Ed481b708e71
第一次攻击tx:
0x1b698231965b72f64d55c561634600b087154f71bc73fc775622a45112a94a77
被攻击池信息
VaultStrategyAlpacaRabbit: 0x27d4cA4bB855e435959295ec273FA16FE8CaEa14
VaultStrategyAlpacaRabbit(proxy): 0xef43313e8218f25Fe63D5ae76D98182D7A4797CC
攻击流程
- 攻击者从 Cream Finance 通过闪电贷获得 53.25 BTC
- 用 53.25 BTC 从 Venus 借出 2717107 TUSD
- 在 PancakeSwap 上,用 TUSD 兑换 BNB,抬高 BNB 价格
- 使用 50 个不同的钱包地址将 38250 TUSD 存入 HUNNY TUSD Vault 合约
- 赎回 2842.16 TUSD,并铸造 12020.40 HUNNY 代币
- 以7.78 BNB 的价格卖出 HUNNY 代币
- 50个钱包重复26次以上步骤
细节
VaultStrategyAlpacaRabbit 合约池的_harvest()函数中,资产的兑换路由为 ALPACA => WBNB => TUSD,而 WBNB/TUSD 池中流动性较低,易被操纵。
在巨额兑换后,抬高了 WBNB 对 TUSD 的价格,攻击者调用 harvest() 函数后,Vault 合约的 TUSD 利润剧增,随后调用 getReward() 函数,通过30%的 performanceFee 手续费铸造 HUNNY 代币,只要铸造出的 HUNNY 代币价值超过 30% 的 performanceFee 手续费,就有利可图。
目前,PancakeHunny 官方已采取紧急措施,暂停了 TUSD Vault 合约的铸币。
总结
此次 PancakeHunny 遭遇的闪电贷攻击的本质原因在于底层资产兑换过程的价格易被操控,未做全面考虑和防护,从而使得攻击者通过巨额资金操纵某一交易对价格进行攻击套利。
近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。
|