2022 年 11 月 8 日,我們偵測到部分攻擊成功從建立在 Sushi 官方 KashiPairMediumRiskV1 合約(或其分叉合約)之上的資金池中提走資產。經調查後,我們發現根本原因是邏輯漏洞導致代幣價格計算錯誤。
我們立即與 Sushi 安全團隊聯繫,他們證實了我們的發現。好消息是,他們正在採取行動,保護一些有價值但存在漏洞的資金池免受攻擊。此外,他們還提供了補償因該漏洞而損失資金的用戶的程序。因此,我們現在認為披露該漏洞和攻擊的細節是安全的。在本報告中,我們將提供詳細的分析。
漏洞分析
在分析 KashiPairMediumRiskV1 合約源碼後,我們斷定該漏洞存在於 borrow 函數中,該函數在 solvent 修飾器中使用過時的 exchangeRate 來驗證借貸份額。具體而言,驗證將基於 _isSolvent 函數中 exchangeRate 的當前值執行。


而在 liquidate 函數中,updateExchangeRate 函數在最開始就被呼叫。因此,驗證和計算將基於更新後的值執行。


顯然,此漏洞可能被利用並導致(巨大的)價格差異。
攻擊分析
我們觀察到兩次攻擊:
- 0xcf8f242ea83100b6d43e659f7f53a698d304fc6ac2ca6fe79e3e07ee05fefe58:受害者使用 KashiPairMediumRiskV1 合約,損失約 9,466 USDC。
- 0x3d163bfbec5686d428a6d43e45e2626a220cc4fcfac7620c620b82c1f2537c78:受害者是一個使用 CauldronMediumRiskV1(KashiPairMediumRiskV1 的分叉)的策略合約,損失約 110,911 MIM。
請注意,第一次攻擊交易是由一個搶先原始攻擊交易的機器人發起的:0x7a845d8d2af7919f5b9e22dd5571305cb5347d17986a8402715c1463d515fc18,原始攻擊者地址為 0xb7ea0f0f8c6df7a61bf024db21bbe85ac5688005。
我們以 第一次攻擊交易 為例,它包含以下步驟:
- 從
Balancer借入 40,900 BADGER 和 121,904 USDC 的閃電貸。 - 將 40,900 BADGER 和 113,599 USDC 存入
BentoBox。 - 呼叫 kmBADGER/USDC-LINK 的
addCollateral函數,存入 40,900,000,000,000,000,000,000 份額的 BADGER。 - 呼叫 kmBADGER/USDC-LINK 的
addAsset函數,存入 112,529,000,000 份額的 USDC。 - 呼叫
borrow函數借出 120,755,095,093 份額的 USDC。 - 呼叫
UpdateExchangeRate函數。 - 呼叫
liquidate函數清算自己。 - 從
BentoBox提取 40,899 BADGER 和 123,006 USDC。 - 歸還閃電貸,獲利約 9,466 USDC。
請注意,步驟 6 並非必要,因為
borrow函數會呼叫UpdateExchangeRate函數。
關鍵步驟如下:
不難發現,borrow 函數中使用的 exchangeRate 值與 liquidate 函數中使用的值存在偏差:
borrow函數中:250,997,938,545,109,237,740,214,705,193liquidate函數中:328,266,883,541,864,569,505,752,156,794
影響範圍
有數十個資金池(在 Ethereum 和 BSC 上)可能受到此錯誤的影響。緩解此問題的一種暫時方法是透過偶爾(或定期)呼叫 UpdateExchangeRate 函數來減少或消除這種偏差。許多受影響的項目已經採用了這種方法,並且在鏈上可以觀察到相應的交易。
總結
確保 DeFi 項目的安全並非易事。除了代碼審計外,我們認為社區應該採取主動方法來監控項目狀態,並在攻擊發生前進行阻斷。
關於 BlockSec
BlockSec 是一家開創性的區塊鏈安全公司,由一群全球傑出的安全專家於 2021 年創立。公司致力於增強新興 Web3 世界的安全性和可用性,以促進其大規模採用。為此,BlockSec 提供智能合約和 EVM 鏈安全審計服務、用於安全開發與主動威脅阻斷的 Phalcon 平台、用於資金追蹤與調查的 MetaSleuth 平台,以及幫助 Web3 建設者在加密世界中高效航行的 MetaDock 擴充功能。
迄今為止,公司已服務超過 300 家知名客戶,如 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap,並從 Matrix Partners、Vitalbridge Capital 和 Fenbushi Capital 等卓越投資者處獲得了兩輪數千萬美元的融資。
官方 Twitter 帳號:https://twitter.com/BlockSecTeam



