返回部落格

超越市場風險:SushiSwap KashiPairMediumRiskV1 合約中發現的邏輯漏洞

Code Auditing
2022年12月15日
閱讀約 4 分鐘

2022 年 11 月 8 日,我們偵測到部分攻擊成功從建立在 Sushi 官方 KashiPairMediumRiskV1 合約(或其分叉合約)之上的資金池中提走資產。經調查後,我們發現根本原因是邏輯漏洞導致代幣價格計算錯誤。

我們立即與 Sushi 安全團隊聯繫,他們證實了我們的發現。好消息是,他們正在採取行動,保護一些有價值但存在漏洞的資金池免受攻擊。此外,他們還提供了補償因該漏洞而損失資金的用戶的程序。因此,我們現在認為披露該漏洞和攻擊的細節是安全的。在本報告中,我們將提供詳細的分析。

漏洞分析

在分析 KashiPairMediumRiskV1 合約源碼後,我們斷定該漏洞存在於 borrow 函數中,該函數在 solvent 修飾器中使用過時的 exchangeRate 來驗證借貸份額。具體而言,驗證將基於 _isSolvent 函數中 exchangeRate 的當前值執行。

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

顯然,此漏洞可能被利用並導致(巨大的)價格差異。

攻擊分析

我們觀察到兩次攻擊:

  1. 0xcf8f242ea83100b6d43e659f7f53a698d304fc6ac2ca6fe79e3e07ee05fefe58:受害者使用 KashiPairMediumRiskV1 合約,損失約 9,466 USDC。
  2. 0x3d163bfbec5686d428a6d43e45e2626a220cc4fcfac7620c620b82c1f2537c78:受害者是一個使用 CauldronMediumRiskV1(KashiPairMediumRiskV1 的分叉)的策略合約,損失約 110,911 MIM。

請注意,第一次攻擊交易是由一個搶先原始攻擊交易的機器人發起的:0x7a845d8d2af7919f5b9e22dd5571305cb5347d17986a8402715c1463d515fc18,原始攻擊者地址為 0xb7ea0f0f8c6df7a61bf024db21bbe85ac5688005。

我們以 第一次攻擊交易 為例,它包含以下步驟:

  1. 從 Balancer 借入 40,900 BADGER 和 121,904 USDC 的閃電貸。
  2. 將 40,900 BADGER 和 113,599 USDC 存入 BentoBox。
  3. 呼叫 kmBADGER/USDC-LINK 的 addCollateral 函數,存入 40,900,000,000,000,000,000,000 份額的 BADGER。
  4. 呼叫 kmBADGER/USDC-LINK 的 addAsset 函數,存入 112,529,000,000 份額的 USDC。
  5. 呼叫 borrow 函數借出 120,755,095,093 份額的 USDC。
  6. 呼叫 UpdateExchangeRate 函數。
  7. 呼叫 liquidate 函數清算自己。
  8. 從 BentoBox 提取 40,899 BADGER 和 123,006 USDC。
  9. 歸還閃電貸,獲利約 9,466 USDC。

請注意,步驟 6 並非必要,因為 borrow 函數會呼叫 UpdateExchangeRate 函數。

關鍵步驟如下:

不難發現,borrow 函數中使用的 exchangeRate 值與 liquidate 函數中使用的值存在偏差:

  • borrow 函數中:250,997,938,545,109,237,740,214,705,193
  • liquidate 函數中: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 等卓越投資者處獲得了兩輪數千萬美元的融資。

官方網站:https://blocksec.com/

官方 Twitter 帳號:https://twitter.com/BlockSecTeam

訂閱最新動態
損失約 54.2 萬美元:MakerDaoBot 遭駭事件|BlockSec 週報
Security Insights

損失約 54.2 萬美元:MakerDaoBot 遭駭事件|BlockSec 週報

本報告涵蓋 2026/10/05 至 2026/10/11 以太坊發生的 1 起安全事件,估計損失約 54.2 萬美元。攻擊合約部署惡意適配器,並將其傳入缺乏存取控制的 MakerDaoBot 函式,使機器人授予適配器操作其內部 MakerDAO 餘額的權限。適配器結算 4 場舊版 ETH-A 拍賣,將 200 單位 ETH-A 抵押品轉為 WETH;攻擊合約將其解除封裝,並把 200 ETH 轉給攻擊者。

損失約4.18億美元:Bitget、NEAR Intents遭利用 | BlockSec Weekly
Security Insights

損失約4.18億美元:Bitget、NEAR Intents遭利用 | BlockSec Weekly

本雙週安全報告記錄2026年9月21日至10月4日的八起事件,涉及以太坊、BNB Chain、Solana、比特幣、TRON、XRP Ledger、Zcash、Avalanche、NEAR等網絡,損失約4.184億美元。詳細分析涵蓋Bitget因第三方安全產品漏洞損失3.875億美元,及NEAR Intents因退款驗證缺陷與狀態回滾缺失損失387萬美元。

Bitget 3.875億美元鏈下違規事件:超越金鑰與合約的範疇
Security Insights

Bitget 3.875億美元鏈下違規事件:超越金鑰與合約的範疇

2026年9月24日,攻擊者利用第三方安全產品漏洞,獲取內部憑證並偽造提款指令,導致約3.875億美元從Bitget部分營運錢包(涵蓋Ethereum、其他EVM網絡、XRP Ledger、Zcash及TRON)轉出;私鑰及冷錢包未受影響。本文深入梳理事件路徑與資金流向,分析快速轉換為原生資產及生態恢復應對,提出機構縱深防禦框架,並說明授權區塊鏈滲透測試如何驗證跨層假設。

Web3 最佳安全審計方

在上線之前驗證設計、程式碼與業務邏輯,對標業內最高安全標準。

BlockSec 審計