背景介紹
我們監(jiān)控到 ethereum 鏈上的一起攻擊事件:https://etherscan.io/tx/0x725f0d65340c859e0f64e72ca8260220c526c3e0ccde530004160809f6177940
攻擊者通過此次攻擊共獲利 649.6 WETH,共約合 170 萬美金。被攻擊項目為 Bedrock , Bedrock 是一個多資產(chǎn)流動性重新抵押協(xié)議,由與 RockX 合作設(shè)計的非托管解決方案支持。Bedrock 支持多種資產(chǎn)進(jìn)行重新抵押/抵押,包括:uniBTC:一種全新的重新抵押協(xié)議,接受包裝的 BTC 代幣,與 BTC 抵押協(xié)議 Babylon Chain 合作,首個支持的包裝 BTC 是以太坊區(qū)塊鏈上的 wBTC 代幣,因此所有 wBTC 代幣持有者將同時享受抵押 BTC 代幣的收益和以太坊網(wǎng)絡(luò)的安全性。uniETH:設(shè)計用于本地重新抵押并獲得額外的 EigenLayer 獎勵,Bedrock 將機(jī)構(gòu)級別的安全性和額外的收益結(jié)合在一起,用于流動抵押 ETH 。uniIOTX:IoTeX 區(qū)塊鏈上的流動抵押解決方案消除了在 IOTX 上的委托權(quán)益證明中存在的若干缺點(diǎn)。
攻擊及事件分析
首先,攻擊者通過 Balancer 借貸了 30.8 WETH,
接著,攻擊者調(diào)用了 Bedrock Vault 的 mint 函數(shù),并轉(zhuǎn)入通過 flashloan 借到的 30.8 ETH 。
我們看一下 mint 函數(shù)的邏輯,如下圖,調(diào)用了 _mint 函數(shù),
隨后,我們看一下 _mint 函數(shù)的邏輯,
然后,通過函數(shù) _amounts 計算出需要 mint 給 msg.sender 的 uniBTC 的數(shù)量。
其中 _amount 為轉(zhuǎn)入 WETH 的數(shù)量,且 EXCHANGE_RATE_BASE 為 1e10 ,所以兌換的比例為 1 : 1e8(因為 uniBTC 的 decimal 為 1e8 ,所以兌換比例為 1 ETH : 1 uniBTC )。隨后攻擊者通過 uniswap 將 30.8 uniBTC 換成 27.8 WBTC ,兌換比例約為 1 : 1,最后攻擊者將兌換到的 27.8 WBTC 通過 uniswap 兌換為 680.4 WETH ,其中還了 30.8 WETH 的借貸。因此,攻擊者最終獲利 649.6 WETH ,約合 1.7 M USD 。
總結(jié)
本次漏洞的成因是沒有處理好 WETH 和 uniBTC 的兌換比例,導(dǎo)致 WETH 和 uniBTC 可以以 1 : 1 兌換,WETH 的價值被放大了數(shù)萬倍。攻擊者利用失真的價格來通過借貸進(jìn)行獲利,最終導(dǎo)致攻擊者用借貸來的 WETH 掏空了項目方的 uniBTC 代幣。
以上就是1 ETH : 1 uniBTC?Bedrock uniBTC 攻擊事件分析的詳細(xì)內(nèi)容
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。