2024年6月10日,UwU Lend遭到攻击,项目损失约US$1930万美元。
SharkTeam第一时间对此次事件进行了技术分析并总结了安全防范措施,希望后续项目方能够汲取此次事件的教训,共同构筑区块链行业的安全防线。
1.攻击交易分析
攻击者:0x841dDf093f5188989fA1524e7B893de64B421f47
攻击者一共发起了3次攻击交易:
攻击交易1:
0x242a0fb4fde9de0dc2fd42e8db743cbc197ffa2bf6a036ba0bba303df296408b
攻击交易2:
0xb3f067618ce54bc26a960b660cfc28f9ea0315e2e9a1a855ede1508eb4017376
攻击交易3:
0xca1bbf3b320662c89232006f1ec6624b56242850f07e0f1dadbe4f69ba0d6ac3
以攻击交易1为例进行分析:
攻击合约:0x21c58d8f816578b1193aef4683e8c64405a4312e
目标合约:UwU Lend Treasury 合约,包括:
USUSDE:0xf1293141fc6ab23b2a0143acc196e3429e0b67a6
乌代:0xb95bd0793bcc5524af358ffaae3e38c3903c7626
uUSDT: 0x24959f75d7bda1884f1ec9861f644821ce233c7d
攻击流程如下:
1. 从不同平台闪贷多种代币,包括WETH、WBTC、sUSDe、USDe、DAI、FRAX、USDC、GHO
代币接收地址为0x4fea76b66db8b548842349dc01c85278da3925da
闪电贷代币及数量如下:
从 Aave V3 闪电贷出 159,053.16 WETH 和 14,800 WBTC
从 Aave V2 闪电贷出 40,000 WETH
从 Spark 闪电贷出 91,075.70 WETH 和 4,979.79 WBTC
从 Morpho 借贷 301,738,880.01 sUSDe、236,934,023.17 USDe 和 100,786,052.15 DAI
从 Uniswap V3 闪电贷 60,000,000 FRAX 和 15,000,000 USDC:FRAX-USDC
从 Balancer 闪电贷出 4,627,557.47 GHO 和 38,413.34 WETH
从 Maker 闪电贷出 5 亿 DAI
总计约 328,542.2 WETH、19779.79 WBTC、600786052.15 DAI、301,738,880.01 sUSDe、236,934,023.17 USDe、4,627,557.47 GHO、60,000,000 FRAX、15,000,000 USDC
2、将闪电贷代币转入合约0xf19d66e82ffe8e203b30df9e81359f8a201517ad(简称0xf19d),准备发动攻击。
3. 通过兑换代币来控制 sUSDe 的价格(压低价格)
(1)USDecrvUSD.exchange
将 8,676,504.84 USDe 兑换为 8,730,453.49 crvUSD。USDecrvUSD 中的 USDe 数量增加,价格下降,crvUSD 数量减少,价格上涨。
(2)USDeDAI.exchange
将 46,452,158.05 USDe 兑换为 14,389,460.59 DAI。USDeDAI 中的 USDe 数量增加,价格下降,DAI 数量减少,价格上涨。
(3)FRAXUSDe.exchange
将 14,477,791.69 USDe 兑换为 46,309,490.86 FRAX。USDe 在 USDDeDAI 中的数量增加,价格就会下降,FRAX 的数量减少,价格就会上升。
(4)GHOUSDe.exchange
将 4,925,427.20 USDe 兑换为 4,825,479.07 GHO。USDE 中 USDe 的数量增加,价格下降,GHO 的数量减少,价格上升。
(5)USDeUSDC.exchange
将 14,886,912.83 USDe 兑换为 14,711,447.94 USDC。USDDeDAI 中的 USDe 数量增加,价格下降,USDC 数量减少,价格上涨。
经过上述兑换,五大资金池中的USDe价格均有所下降,最终导致sUSDe价格大幅下跌。
4、继续创建借贷仓位,也就是把其他资产(WETH、WBTC 和 DAI)存入 LendingPool 合约,然后借入 sUSDe。因为 sUSDe 价格暴跌,所以借入的 sUSDe 数量比价格暴跌之前多很多。
5、与步骤3类似,反向操作推高sUSDe的价格。
随着sUSDe被拉高,步骤4中的借贷头寸价值超过了抵押品价值,达到了清算标准。
6. 分批清算借贷头寸并获得清算奖励 uWETH
7.偿还借款并提取基础资产WETH、WBTC、DAI和sUSDe。
8.将sUSDe再次存入LendingPool,此时sUSDe的价格被抬高,因此可以借入更多其他资产,包括DAI、USDT等。
9.兑换代币并偿还闪电贷。最终利润:1,946.89 ETH
2. 漏洞分析
通过以上分析发现,整个攻击过程中存在大量闪电贷,以及对 sUSDe 价格的多次操纵。当质押 sUSDe 时,会影响借入资产的数量;当借入 sUSDe 时,会影响借入利率,进而影响清算系数(健康系数)。
攻击者利用这一点,利用闪电贷压低sUSDe价格,抵押其他资产,借入大量sUSDe,然后拉高sUSDe价格,将抵押资产平仓获利,再将剩余的sUSDe抵押借入其他资产,最后偿还闪电贷,攻击完成。
从上述步骤3我们发现攻击者通过控制Curve Finances USDe/rvUSD、USDe/AI、FRAX/SDe、GHO/SDe和USDe/SDC交易池中USDe的价格来操纵sUSDe的价格,价格读取函数如下:
其中,sUSDe 价格由 11 个价格计算得出,前 10 个价格从 CurveFinance 读取,最后一个价格由 Uniswap V3 提供。
从CurveFinance读取的价格由五个交易池提供:USDe/rvUSD、USDe/AI、FRAX/SDe、GHO/SDe和USD/SDC,这也是攻击者在攻击交易中操纵的五个交易池。
返回的价格是根据CurveFinance交易池合约中的uwuOracle、price_oracle(0)和get_p(0)读取的价格计算得出的。
(1)价格由Chainlink提供,不可操纵;
(2)交易池参数
攻击者通过操纵交易池中的代币数量,来操纵get_p(0)的返回值,进而操纵价格。
3. 安全建议
针对此次攻击,在开发过程中应遵循以下预防措施:
(1)为了解决价格操纵漏洞,可以使用链下价格预言机来防止价格操纵。
(2)项目上线前需要第三方专业审计公司进行智能合约审计。
关于我们
SharkTeams 的愿景是守护 Web3 世界的安全。团队由来自世界各地的资深安全专业人士和高级研究员组成,精通区块链和智能合约的底层理论。提供包括风险识别与阻断、智能合约审计、KYT/AML、链上分析等服务,并打造了链上智能风险识别与阻断平台 ChainAegis,可有效打击 Web3 世界的高级持续性威胁(APT)。与 Web3 生态各领域关键参与者建立了长期合作关系,如 Polkadot、Moonbeam、polygon、Sui、OKX、imToken、Collab.Land、TinTinLand 等。
官方网站:https://www.sharkteam.org
Twitter:https://twitter.com/sharkteamorg
电报:https://t.me/sharkteamorg
Discord:https://discord.gg/jGH9xXCjDZ
本文来源于网络:SharkTeam:UwU Lend 攻击事件分析
相关:Bitget研究院:欧洲央行降息符合预期,IO.NET将开放交易
过去24小时,市场出现不少新的热门币种和主题,很有可能就是下一个赚钱机会。欧洲央行降息25个基点,或将开启全球央行降息周期。BTC现货ETF连续18天净流入。山寨币市场表现平淡。Solana生态meme交易活跃度居高不下。io.net(IO)将于6月11日开放交易。造富效应最强的板块有:GameStop概念meme 未来值得关注的板块:TON生态 用户搜索最多的代币和主题有:Glacier Network、Ultiverse、io.net 潜在的空投机会包括:…