2024 年 3 月 5 日,Woo Finance 部署在 Arbitrum 上的合约遭受闪电贷攻击,损失约 850 万美元。此前,2 月 23 日,Woo Finance 部署在 Ethereum 上的合约就曾被攻击,损失约 3,891 美元,很显然黑客团队将 Woo Finance 作为攻击目标进行了系统化的漏洞挖掘,非常可惜 Woo Finance 没有能及时对多链合约的安全性进行全面检查,没能阻止这次攻击。
SharkTeam 对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。
一、攻击交易分析
攻击者地址:
0x9961190b258897bca7a12b8f37f415e689d281c4
攻击合约:
0x1759f791214168e0292ab6b2180da1c4cf9b764e
0xc3910dca5d3931f4a10261b8f58e1a19a13e0203
0xd4c633c9a765bc690e1fba566981c1f4eab52df0
0x66634590d7d631e3bf85ef4cd6c89ca7479e22bc
0x27a116a48c6dd23fc005ea6ea02847723d5b3856
0x2458464afec10e973ac61860718328ce8358be3a
被攻击合约:
0xeff23b4be1091b53205e35f3afcd9c7182bf3062
攻击交易:
0x57e555328b7def90e1fc2a0f7aa6df8d601a8f15803800a5aaf0a20382f21fbd
0x40e1b8c78083fc666cb7598efcecd0ae0af313fc41441386e4db716c2808ce07
0xe80a16678b5008d5be1484ec6e9e77dc6307632030553405863ffb38c1f94266
攻击流程:
1. 以第一笔攻击交易为例,攻击合约(0x1759f791)通过闪电贷借取 10580749 枚 USDC.e 代币和 2704558 枚 WOO 代币。
2. 后通过在 Silo 合约中抵押 7000000 枚 USDC.e 代币,借出了 5092663 枚 WOO 代币,再将 2000000 枚 USDC.e 代币兑换成了 WETH。
3. 攻击合约(0x1759f791)将 100000 枚 USDC.e 兑换为 173684 枚 WOO,并略微抬高 WOO 的价格。
4. 攻击合约(0x1759f791)用 7856868 枚 WOO 代币在被攻击合约(0xeff23b4b)中兑换为 2246892 枚 USDC.e,并将合约中 WOO 代币的价格从 578535. 在价格被更改后,攻击合约(0x1759f791)仅用 0.9 枚 USDC.e 就换出了 10232908 枚 WOO。
5. 在价格被更改后,攻击合约(0x1759f791)仅用 0.9 枚 USDC.e 就换出了 10232908 枚 WOO。
6. 攻击合约(0x1759f791)归还 silo 中借出的 WOO 代币提出抵押的 USDC.e 代币并归还闪电贷函数,最后获利 559 枚 ETH 和 2549710 枚 WOO。
二、漏洞分析
攻击的本质是合约的价格计算式中参数可以被黑客操控,导致 WOO 代币的价格被操纵。被攻击合约(0xeff23b4b)中_calcQuoteAmountSellBase 对价格进行计算时逻辑出现漏洞。
价格计算式中的 baseAmount 以及 state.price 都可以被操控,攻击者(0x9961190b)在第三步时抬高了一些 stake.price,第四步使用大量 WOO 代币进行兑换,导致 baseAmount 参数很大,由于红框中计算的结果作为减数存在,所以当红框计算结果越大,newPrice 参数越小,使得兑换结束后 price 值被设定为了 9。价格比例严重失衡,使用极少 USDC.e 即可换出大量 WOO 代币。
三、安全建议
针针对本次攻击事件,我们在开发过程中应注意以下事项:
1. 开发者在设计价格计算式时,应严格考虑参数是否会被操控的问题。
2. 项目上线前,需要通过专业的第三方审计团队进行智能合约审计。
About Us
SharkTeam 的愿景是保护 Web3 世界的安全。团队由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约底层理论。提供包括风险识别与阻断、智能合约审计、KYT/AML、链上分析等服务,并打造了链上智能风险识别与阻断平台 ChainAegis,能有效对抗 Web3 世界的高级持续性威胁 (Advanced Persistent Threat,APT)。已与 Web3 生态各领域的关键参与者,如 Polkadot、Moonbeam、polygon、Sui、OKX、imToken、Collab.Land 等建立长期合作关系。
官网:https://www.sharkteam.org
Twitter:https://twitter.com/sharkteamorg
Telegram:https://t.me/sharkteamorg
Discord:https://discord.gg/jGH9xXCjDZ
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。