1 ETH = 1 uniBTC?基岩uniBTC攻擊事件解析


近日,以太坊鏈上發生了一起攻擊事件,攻擊者利用漏洞從Bedrock協議中獲利649.6 WETH,約170萬美元。攻擊者透過Balancer借貸30.8 WETH,再呼叫Bedrock Vault的mint函數,導致WETH與uniBTC之間以1:1的錯誤比例兌換。最終,攻擊者將兌換到的27.8 WBTC換成680.4 WETH,償還了借貸的30.8 WETH,成功詐騙。這次事件揭示了Bedrock在處理WETH與uniBTC兌換時的漏洞,造成了專案重大損失。

背景介紹

我們監控以太坊鏈上的一起攻擊事件:https://etherscan.io/tx/0x725f0d65340c859e0f64e72ca8260220c526c3e0ccde530004160809f6177940

攻擊者透過這次攻擊共獲利649.6 WETH,共約170 萬美元。被攻擊項目為Bedrock ,Bedrock 是一個多資產流動性重新託管協議,由與RockX 合作設計的非託管解決方案支援。 Bedrock 支持多種資產進行重新質押/質押,包括:uniBTC:一種全新的重新質押協議,接受盤點的BTC代幣,與BTC質押協議Babylon Chain合作,首個支持的盤點BTC是以太坊區塊鏈上的wBTC 代幣,因此所有wBTC 代幣持有者將同時享受託管BTC 代幣的收益和以太坊網路的安全性。 uniETH:為本地重新設計託管並獲得額外的EigenLayer 獎勵,基岩將機構級別的安全性性和額外的收益結合在一起,用於流動質押ETH 。 uniIOTX:IoTeX區塊鏈上的流動質押解決方案消除了IOTX 上的委託權益證明中存在的一些缺點。

攻擊及事件分析

首先,攻擊者透過Balancer借貸了30.8 WETH,

隨後,攻擊者呼叫了Bedrock Vault 的mint 函數,並透過flashloan 轉入30.8 ETH 。

1 ETH : 1 uniBTC?基岩uniBTC攻擊事件分析

我們來看看mint 函數的邏輯,如下圖,呼叫了_mi​​nt 函數,

1 ETH : 1 uniBTC?基岩uniBTC 攻擊事件分析

具體,我們來看看_mint 函數的邏輯,

1 ETH : 1 uniBTC?基岩uniBTC攻擊事件分析

然後,透過函數_amounts 計算出需要mint 給msg.sender 的uniBTC 的數量。

1 ETH : 1 uniBTC?基岩uniBTC 攻擊事件分析

其中_amount 為轉入WETH 的數量,且EXCHANGE_RATE_BASE 為1e10 ,所以兌換的比例為1 : 1e8 (因為uniBTC 的小數為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美元。

總結

本次漏洞的成因是沒有處理好WETH 和uniBTC 的兌換比例,導致WETH 和uniBTC 可以以1 : 1 兌換,WETH 的價值被放大了數萬倍。攻擊者利用失真的價格來透過網路詐騙,最終導致攻擊者用比特幣來的WETH掏空了專案方的uniBTC代幣。

資訊來源:0x資訊編譯自網際網路。版權歸作者零時科技所有,未經許可,不得轉載

Total
0
Shares
Related Posts