零时科技 || WOOFi 攻击分析

Arbitrum链上的WOOFi遭遇攻击,损失约900万美元。攻击利用合约漏洞拉高WOO价格后通过低价兑换大量WOO,最终导致重大损失。官方与攻击者沟通提出白帽奖金,但资金未归还。问题后被修复,指出设计和审计的重要性。

顶部banner2.jpg

背景介绍

<!--StartFragment-->

2024年3月5日,我们监测到一笔arbitrum链上的异常交易:https\://arbiscan.io/tx/0xe80a16678b5008d5be1484ec6e9e77dc6307632030553405863ffb38c1f94266

经分析,我们发现是一次针对WOOFi的攻击事件,事件共造成约900万美元的损失

WOOFi是由WOO Network构建的一体化去中心化应用程序(DApp)。WOOFI旨在通过提供超低滑点、有竞争力的兑换费用以及其他有用功能,优化用户对去中心化金融(DeFi)的体验。

WOOFi用户可兑换热门数字资产,还有机会通过质押和向网络提供流动性来赚取收入。WOOFi平台为DeFi用户打造的一大价值主张是深度流动性。

本次受攻击的为WOOFi中的swap合约,合约地址为:https\://arbiscan.io/address/0xeff23b4be1091b53205e35f3afcd9c7182bf3062#code

<!--EndFragment-->

攻击及事件分析

<!--StartFragment-->

攻击者从Uniswap、TraderJoe中利用flashLoan获得攻击初始资金,共计10504796 USDC.e和2721172 WOO。

<!--EndFragment-->

Pasted image 20240307163618.png

随后,攻击者将借来的USDC.e在Slio Finance中抵押(共抵押7000000 USDC.e),借出5092663 WOO

2.png

接着,攻击者利用剩下的USDC.e通过WOOFi的swap功能,兑换为WOO,因此拉高WOO的价格

3.png

经过3次swap操作,将WOO的价格由56884100拉高到了60400479,为后续的攻击创造了条件。 真正的攻击发生在攻击者将WOO兑换为USDC.e时

4.png

可以看到,经过此次swap,WOO的价格变为了7,即0.00000007 USD。对比之前的价格暴跌了862万倍。 通过查看合约代码我们发现,WOOFi合约中在进行将BaseToken兑换为QuoteToken时存在数据处理缺陷。

5.png

我们看卖出BaseToken得到QuoteToken时,BaseToken的价格计算方法 newPrice = (1 - 2 k oracle.price baseAmount) oracle.price 攻击者可以控制oracle.price和baseAmount,因为k值不变。攻击者可以通过多次swap操纵oracle.price即BaseToken的价格,并且可以操纵baseAmount。由这个公式可以看出,newPrice必定小于oracle.price。所以,攻击者可以控制oracle.price和baseAmount的组合,将newPrice操纵到极低。 最后,攻击者利用小额的USDC.e兑换出了大量的WOO,归还借贷本金并套现。 2天后,WOOFi官方人员与攻击者沟通,表示可以提供10%作为Whitehat奖金。不过截至发文时,攻击者还未归还被盗资金。

6.png

随后,官方修复了这个问题,可以看到,官方修复的方式就是取消了2倍的系数。https://github.com/woonetwork/WooPoolV2/commit/f5fe28acc77cf3801ac379db9bf99bb61b73ba17

7.png

总结

本次漏洞的成因是经济模型计算存在漏洞,攻击者可以控制价格的买卖数量从而使Token价格大幅缩水,最终导致攻击者用极少的USDC.e掏空了项目方的WOO代币。建议项目方在设计经济模型和代码运行逻辑时要多方验证,合约上线前审计时尽量选择多个审计公司交叉审计。

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
零时科技
零时科技
0xbD0b...A354
专注区块链生态安全