零时科技 || DFX Finance攻击事件分析

零时科技 || DFX Finance攻击事件分析



事件背景


零时科技区块链安全情报平台监控到消息,北京时间2022年11月11日,ETH链上DFX Finance受到黑客攻击,攻击者获利约3000ETH,耗尽了流动资金池,攻击者地址为:

0x14c19962e4a899f29b3dd9ff52ebfb5e4cb9a067,目前已将资金转入TornadoCash。零时科技安全团队及时对此安全事件进行分析。



漏洞核心


在DFX Finance中闪电贷归还逻辑为归还用户闪电贷之前与闪电贷之后池子中金额的差值。

零时科技 || DFX Finance攻击事件分析

由于Flash方法存在用户可控的可操作其他方法参数,但Flash方法调用并未做同合约同方法和同合约不同方法的重入限制。攻击者通过闪电贷中的回调函数向池子中添加流动性,使得执行闪电贷前后池子中差额比应归还的要少,归还闪电贷后取出添加的流动性资金。


以一笔攻击为例,攻击交易为

0x390def749b71f516d8bf4329a4cb07bb3568a3627c25e607556621182a17f1f9

此时池子中XIDR和 USDC两种代币余额为

零时科技 || DFX Finance攻击事件分析

攻击者调用flash方法借出 XIDR 和 USDC 两种代币

零时科技 || DFX Finance攻击事件分析

 之后通过闪电贷回调函数攻击者向池子中添加流动性获得流动性代币

零时科技 || DFX Finance攻击事件分析

此时池子中两种代币余额为

零时科技 || DFX Finance攻击事件分析

 此时闪电贷前后的资金差值远远小于攻击者借出的资金值,因此攻击者只需要归还很少的资金即可

零时科技 || DFX Finance攻击事件分析

随后攻击者将添加的流动性取出,为攻击者一笔交易中的获利(获利资金是将闪电贷资金和移除流动性资金相加,最后减去闪电贷资金及手续费,为获利资金,实际获利22.71亿枚XIDR和9.95万USDC

零时科技 || DFX Finance攻击事件分析

攻击者随后进行多笔攻击,直到耗尽DFX交易池中代币,随后将获得的代币兑换为ETH转移至TornadoCash中,共获利约3000ETH

零时科技 || DFX Finance攻击事件分析


零时科技 || DFX Finance攻击事件分析

总结建议

此次攻击是由于DFX中闪电贷合约对于归还闪电贷的计算方式只与池子中的资金余额有关,Flash方法调用未做同合约同方法和同合约不同方法的重入限制,攻击者通过将资金借出之后通过添加流动性又将资金转入了池子中,因此计算的需要归还的闪电贷资金减少,攻击者之后可以通过归还流动性代币将资金取出。

安全建议

  1. 建议将闪电贷归还资金计算设置为用户借出的资金加利息,避免归还资金收到池子资金余额影响;

  2. 建议对用户调用方法存在可控参数时,对该方法进行防止重入的机制保护;

  3. 建议项目方上线前进行多次审计,避免出现审计步骤缺失。



零时


零时科技 || DFX Finance攻击事件分析


零时科技 || DFX Finance攻击事件分析


往期内容回顾


零时科技 | Nomad 跨链桥被盗1.8亿美元事件分析

零时科技 | Audius金库1850万枚AUDIO被盗事件分析

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

Beanstalk Farms攻击事件分析 | 零时科技

为什么黑客如此“钟爱”跨链桥

零时科技 | Agave Finance攻击事件分析

零时科技联合创始人黄鱼先生受邀对话《Web3应用创新与生态安全》

零时科技创始人邓永凯先生受邀对话《公链隐私保护及生态安全》

零时科技 | 被盗6.1亿美金,Poly Network 被攻击复盘分析

零时科技 || Uniswap v3出现漏洞?No,新型钓鱼来袭!

原文始发于微信公众号(零时科技):零时科技 || DFX Finance攻击事件分析

版权声明:admin 发表于 2022年11月11日 下午4:56。
转载请注明:零时科技 || DFX Finance攻击事件分析 | CTF导航

相关文章

暂无评论

暂无评论...