又現套利攻擊!—Goldfinch項目的SeniorPool合約遭受攻擊事件分析
2022-06-28 16:55:30
2022年6月28日,成都鏈安鏈必應-區塊鏈安全態勢感知平台輿情監測顯示,Goldfinch項目的SeniorPool合約遭受攻擊,攻擊者累計獲利金額爲28,523個USDC,項目方累計損失541,158個USDC。成都鏈安安全團隊對此事件進行了分析,現與大家分享。
攻擊交易地址:
0xd56d801e07df9d8457973c3938f5d3e6343ec1ed11f4ebb76bc3f5cc73001707
攻擊者地址:
0x86c595d81c8ab46d893065c3c674da72555fe7c0
攻擊者合約:
0x541143d5eb30563a478eea23866e203b7c38c1ca
本次攻擊存在多筆,我們選取了具體的一筆攻擊交易進行分析:
1. 第一步:攻擊者通過Uniswap V3的DAI-USDC池子閃電貸借出110,000個USDC代幣。
2. 第二步攻擊者再把110,000個USDC代幣從Curve的FIDU-USDC池子兌換出106,667個FIDU代幣。
3. 第三步攻擊者利用SeniorPool合約的withdrawInFidu函數,把106,667個FIDU代幣兌換成113,853個USDC,然後歸還閃電貸110,011個USDC,剩余本次攻擊獲利的3,842個USDC。
漏洞原因爲:攻擊者可以利用Curve的FIDU-USDC池子獲取FIDU代幣,來獲取SeniorPool合約抵押USDC代幣的紅利。
目前Curve中FIDU兌換USDC爲1:1.03, 而在SeniorPool中的比例爲1:1.07,這就產生了套利空間。
圖 1 Curve中FIDU兌換USDC的比例
圖 2 SeniorPool合約中FIDU兌換USDC的比例
下面是具體的代碼實現:
攻擊者利用withdrawInFidu函數銷毀FIDU代幣換取USDC。而可獲取USDC的數量是通過_getUSDCAmountFromShares函數中的sharePrice去計算的。這裏的sharePrice會隨着分紅的增加而增加,攻擊者就可以利用Curve的FIDU-USDC池子獲取FIDU代幣,從而獲取SeniorPool合約抵押FIDU代幣的紅利。
針對本次事件,成都鏈安安全團隊建議:
項目方使用新的代幣代替FIDU代幣爲憑據代幣,並確保其他途徑無法獲取該憑據代幣。此外建議項目上线前選擇專業的安全審計公司進行全面的安全審計,規避安全風險。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
標題:又現套利攻擊:Goldfinch項目的SeniorPool合約遭受攻擊事件分析
地址:https://www.torrentbusiness.com/article/4074.html
標籤: