以小博大 —— UniLend 被黑事件分析
背景
2025年1月13日,據(jù)慢霧MistEye安全監(jiān)控系統(tǒng)監(jiān)測,EVM鏈上的UniLend遭攻擊,損失約19.7萬美元。慢霧安全團隊對該事件展開分析并將結果分享如下:
2.利用閃電貸借入資產(chǎn):攻擊者通過閃電貸借入60MUSDC和5wstETH,并將wstETH轉換為6stETH。
4.借入目標資產(chǎn):由于攻擊者事先存入了大量的USDC,于是通過調(diào)用borrow函數(shù),可以正常借入60stETH。此時由于借貸,stETHborrowShare增加至60239272000126842038。
6.贖回質(zhì)押的USDC:攻擊者再次調(diào)用redeemUnderlying函數(shù),贖回質(zhì)押的全部USDC。在redeemUnderlying函數(shù)中,首先調(diào)用_burnLPposition函數(shù)銷毀對應的USDClendShare,此時的USDClendShare還剩下150237398。隨后,合約在checkHealthFactorLtv1函數(shù)中檢查健康因子,最后將贖回的USDC轉移給用戶。
7. 完成攻擊并獲利:最終,攻擊者返還閃電貸借入的USDC和wstETH,獲利離場。由于漏洞,攻擊者僅僅質(zhì)押了200USDC便可獲得60stEth。總結
本次攻擊的核心在于攻擊者利用redeemUnderlying函數(shù)使用了池子舊的token余額來計算健康因子,而此時用戶的token尚未從池中轉出,導致健康因子計算結果高于實際情況,系統(tǒng)錯誤地認為用戶的借貸狀態(tài)是安全的。攻擊者因此能夠繞過健康因子的正確校驗,*非*法獲取目標資產(chǎn)。慢霧安全團隊建議項目方在健康因子計算過程中,確保資產(chǎn)狀態(tài)的實時更新,從而避免類似情況的發(fā)生。