Uniswap和Lendf.Me遭攻擊始末:DeFi樂高組合下的“多米諾”式崩塌
PeckShield
2020-04-21 05:16
本文约3045字,阅读全文需要约12分钟
這是自年初bZx 遭攻擊之後,又兩起黑客利用DeFi 系統性風控漏洞實施的攻擊。

編者按:本文來自PeckShield(ID:PeckShield),Odaily經授權轉載。

編者按:本文來自

,Odaily經授權轉載。

編者按:本文來自

,Odaily經授權轉載。

編者按:本文來自

詳細漏洞攻擊細節,我們將在文章後面做詳細介紹。

Figure 1: ERC777 transferFrom()

圖片描述

二級標題

圖片描述

ERC777 標準的業務組合兼容性問題

Figure 2: ERC777-Compatible tokensToSend() Hijacking

圖片描述

Figure 3: OpenZeppelin's Exploit Demo (Hook Setup)

圖片描述

Figure 4: OpenZeppelin's Exploit Demo (Hook Function)

圖片描述

圖片描述

Figure 5: Uniswap Hack

圖片描述

圖片描述

Figure 6: Lendf.Me Hack

二級標題

需要注意的是,正常的業務邏輯應該是項目合約中的Balance 會減去被攻擊者提走的290個imBTC,然而當supply() 執行返回時,餘額並未被重置,仍然為290 imBTC(第1,599行)。攻擊者就是通過控制修改Lendf.Me 中攻擊者的imBTC 抵押金額,有了足夠大的imBTC 抵押,攻擊就可以從各種流動交易對中藉出所有可用的10多種資產(資產總值25,236,849.44美元)。

Figure 7: Lendf.Me Hack Details

圖片描述

二級標題

如上圖,攻擊者在獲利之後,馬上將各個Token 轉移至其關聯賬號0xa9bf70 之中,之後攻擊者數十次通過1inch.exchange, ParaSwap 等平台將其中比較搶手的WETH, PAX, BUSD 等Token 換成ETH, DAI, BAT 代幣,另外將其中的TUSD, USDT 代幣存入Aave 借貸平台。至此為止,攻擊者及其關聯賬號的餘額如上所示。

修復建議

二級標題

修復建議

二級標題

修復建議

二級標題

PeckShield
作者文库