Value DeFi 協議閃電貸攻擊簡要分析

據慢霧區消息,2020年11月15日,ValueDeFi的ValueDeFiMultiStables保險庫遭遇閃電貸攻擊...

據慢霧區消息,2020 年 11 月 15 日,Value DeFi 的 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 的價值,從而獲利。

本文鏈接:https://www.8btc.com/article/669101
轉載請註明文章出處

0

發表迴響