鏈聞消息,Value DeFi 的 MultiStables 保險庫遭遇閃電貸攻擊,慢霧安全團隊於第一時間跟進並進行相關分析,以簡要的形式呈現給大家,供大家參考。1. 攻擊者首先從 Aave 中借出 80000 個 ETH,爲攻擊做準備;2. 攻擊者使用 80000 個 ETH 在 Uniswap WETH/DAI 池中用閃電貸借出大量的 DAI 和 在 Uniswap WETH/DAI 兌換出大量的 USDT;3. 用戶調用 ValueMultiVaultBank 合約 的 deposit 合約使用第 2 步中小部分的 DAI 進行充值,ValueMultiVaultBank 合約中一共有 3 種資產,分別是 3CRV、bCRV、和 cCRV。ValueMultiVaultBank 合約在鑄幣的時候會將合約中的 bCRV、cCRV 轉換成以 3CRV 進行計價,轉化的途徑爲 bCRV/cCRV -> USDC -> 3CRV。其中 USDC -> 3CRV 使用的是 DAI/USDC/USD 池中 USDC/3CRV 的價格。轉換完成後,Value DeFi 合約根據合約中總的 3CRV 的價值和攻擊者充值的 DAI 數量計算 mVUSD 鑄幣的數量;4. 攻擊者在 Curve DAI/USDC/USDT 池先使用第二步中剩餘的大部分 DAI 和 USDT 兌換 USDC,拉高 DAI/USDC/USDT 池中的 USDC/3CRV 的價格;5. 攻擊者在 ValueMultiVaultBank 合約中發起 3CRV 提現,此時 ValueMultiVaultBank 合約和第 3 步一樣,會先將合約中的 bCRV、cCRV 轉換成以 3CRV 計價,由於在第 4 步中,USDC/3CRV 的價格已經被拉高,導致換算的過程中,ValueMultiVaultBank 合約中的 bCRV, cCRV 能換算成更多的 3CRV,也就是說使用同等份額的 mVUSD 可以換取更多的 3CRV;6. 拿到 3CRV 後,攻擊者到 Curve 的 DAI/USDC/USDT 池中使用 3CRV 換回 DAI,並在 Uniswap 中兌換回 ETH,然後歸還 Aave 的閃電貸 。總結:由於 Value DeFi 合約在鑄幣過程中將合約資產轉換成 3CRV 時依賴 Curve DAI/USDC/USDT 池 中 USDC/3CRV 的價格,導致攻擊者可以通過操控 Curve DAI/USDC/USDT 池 中 USDC/3CRV 的價格來操控 mVUSD/3CRV 的價值,從而獲利。

來源鏈接