OneRing Finance 被黑分析

2022-03-23 09:03:35

By:小白@慢霧安全團隊

2022 年 3 月 21 日,據慢霧區消息,OneRing Finance 存在嚴重漏洞遭到攻擊,黑客獲利約 1,454,672.244369 USDC(約 146 萬美元),慢霧安全團隊第一時間介入分析,並將結果分享如下:

相關信息

OneRing Finance 是一個去中心化應用程序(DApp),它支持加密貨幣的質押挖礦。用戶可以存入代幣來獲取收益。

以下是本次攻擊涉及的相關地址:

攻擊者地址:

0x12efed3512ea7b76f79bcde4a387216c7bce905e

攻擊交易:https://ftmscan.com/tx/0xca8dd33850e29cf138c8382e17a19e77d7331b57c7a8451648788bbb26a70145

攻擊合約:

0x6a6d593ed7458b8213fa71f1adc4a9e5fd0b5a58

被攻擊合約:

OneRingVault:0xc06826f52f29b34c5d8b2c61abf844cebcf78abf

攻擊核心點

OneRing 直接使用了 Pair 中的 reserves 參與 OShare 的價格計算,攻擊者利用 OneRingVault 正常的業務邏輯進行巨額的 Swap 操作產生的大滑點,使得 Pair 中的 reserves 非預期的增加,從而拉高了 OShare 的價格,導致相同數量的 OShare 可以取出更多的資金。

具體細節分析

1. 攻擊者構造了攻擊合約,利用閃電貸從 Solidity 借出 80000000 個 USDC 到攻擊合約中


      OneRing Finance 被黑分析

2. 接着通過 swap 函數將 1 個 USDC 兌換成 miMatic 代幣,這裏可以看到當前代幣兌換率是 1:1.001109876698508218


      OneRing Finance 被黑分析

3. 調用 depositSafe 函數將 79,999,997($80,079,997.00)個 USDC 充值進合約


      OneRing Finance 被黑分析


      OneRing Finance 被黑分析

這裏 depositSafe 函數會內部調用 _deposit 函數,_deposit 函數會調用 _doHardWorkAll 函數,在該函數中會使用 for 循環將部分存入的 USDC 全部兌換成其他的代幣


      OneRing Finance 被黑分析

然後 depositSafe 將約 41,965,509.691846094312718922 個 OShare 代幣 mint 給攻擊者。此時我們可以看到 OShare 的價格是 1062758591235248117 這個值


      OneRing Finance 被黑分析

從下面這張圖中可以看出在 swap 後攻擊者使用兩個 USDC 再次兌換 miMATIC 代幣時此時的兌換率已經產生巨大變化:


      OneRing Finance 被黑分析

4. 然後調用 withdraw 函數。我們可以看到 withdraw 函數也調用了getSharePrice 函數進行 OShare 的價格計算


      OneRing Finance 被黑分析

我們來看 getSharePrice 函數:


      OneRing Finance 被黑分析

這裏調用了 balanceWithInvested 函數,繼續跟進發現調用了 investedBalanceInUSD 函數:


      OneRing Finance 被黑分析

這裏可以看到最終影響價格的是 getUSDBalanceFromUnderlyingBalance 函數


      OneRing Finance 被黑分析

在 getUSDBalanceFromUnderlyingBalance 函數中我們可以看到,該函數使用合約中兩個代幣的數量  _reserves0 和 _reserves1 這兩個值進行計算,由於之前的 swap 導致大量的 USDC 留在池子中,所以導致池子中的 USDC 數量變大,從而使 _amount 變大,這就導致了 getSharePrice 函數獲取到的當前 OShare 的價格變大了


      OneRing Finance 被黑分析

由下圖我們可以看到當前的 OShare 的價格為 1136563707735425848 這個值:


      OneRing Finance 被黑分析

從下面的 withdraw 函數中可以看出最終的提現數量是通過 _withdraw 進行計算得出的


      OneRing Finance 被黑分析

跟進去後發現 _toWithdraw 也是由 balanceWithInvested 計算得出的,這也就導致這個值變大


      OneRing Finance 被黑分析

然後會在這一步將攻擊者持有的 41965509 個 OShare 兌換為 81534750101089 個 USDC


      OneRing Finance 被黑分析

5. 攻擊者歸還閃電貸後獲利離場

MistTrack

據慢霧 MistTrack 分析,攻擊者將獲利的部分 USDC 換成 FTM、ETH,最後將 USDC、ETH 跨鏈到以太坊。同時,以太坊上黑客地址初始資金來自於 Tornado.Cash 轉入的 0.1 ETH,接着黑客將 521 ETH 轉入 Tornado.Cash。

截止目前,黑客以太坊地址仍有近 4.5 萬美元,包括 14.86 ETH 和 100.29 USDC。慢霧 MistTrack 將持續監控黑客地址。


      OneRing Finance 被黑分析

總結

本次攻擊是由於在 MasterChefBaseStrategy 合約中的 getUSDBalanceFromUnderlyingBalance 函數實時儲備量進行計算導致攻擊者可以利用閃電貸制造巨大差值從而獲利。慢霧安全團隊建議在進行 share 的價格計算時不要使用實時儲備量進行計算,避免再次出現此類事故。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

超萬億市場的變革——了解真實世界資產代幣化

簡介:什么是資產代幣化? 首先,定義代幣化——這是一個將資產的發行、記账和管理流程轉變為數字化的過...

coincaso
16 4天前

UU Wallet:守正出奇、合規創新,東南亞加密支付新勢力

由Chainlink主辦的2024 SmartCon大會近日在香港落幕,作為大會頂級贊助商之一,東...

coincaso
20 6天前

COW 單日翻倍領漲 DeFi 賽道,V 神最愛的 swap 有什么本領?

隨着特朗普的勝選,加密資產全线普漲,但最為矚目的項目當屬剛剛上线幣安的 COW,最高漲幅204%。...

coincaso
25 1周前

今日推薦|DeFi 代幣飆升 30%,交易員預計在特朗普領導下 DeFi 將迎來“更友好”的環境

DeFi 公司擔心在美國證券交易委員會的監督下為其代幣實施“價值累積機制”——但隨着當選總統唐納德...

coincaso
25 1周前

逆市拉盤,一文速覽Depin協議Grass為何暴漲

在加密市場近期震蕩中,Grass代幣($GRASS)以其獨特的表現引發了市場的廣泛關注。尤其是在過...

coincaso
32 1周前

從大虧8.68億到協議重生:Ethena的困境與破局

引言Ethena是本輪周期少有的現象級DeFi項目,其代幣上线後流通市值一度超過20億美金(對應F...

coincaso
30 2周前