Back to Blog

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

Code Auditing
December 15, 2022
4 min read

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

Sign up for the latest updates
電子報 - 2026年6月
Security Insights

電子報 - 2026年6月

本月報告涵蓋2026年6月三起最大安全事件,確認損失合計約2200萬美元。一次精密蜜罐攻擊利用未受檢查的代幣授權,從JaredFromSubway的MEV機器人抽走約1500萬美元。兩個舊版Aztec rollup部署因證明結算邊界漏洞損失約435萬美元。SecondFi的Ed25519實現缺陷暴露錢包私鑰,導致374個錢包共損失約240萬美元。三起事件共同模式:表面完整但從未真正執行的安全保證。

~$400萬損失:Taiko、SecondFi遭攻擊 | BlockSec週報
Security Insights

~$400萬損失:Taiko、SecondFi遭攻擊 | BlockSec週報

本週區塊鏈安全報告涵蓋2026年6月22-28日兩起重大事件,以太坊和Cardano確認損失約410萬美元。Taiko橋接漏洞結合了外洩的SGX飛地簽名密鑰與不完整的認證策略,未能拒絕調試飛地,使攻擊者註冊惡意證明者並偽造L2狀態證明。SecondFi錢包漏洞源於Ed25519隨機數派生中的密碼學實現缺陷,移除了秘密輸入,可從Cardano公開交易數據離線恢復私鑰。

~$18M損失:jaredFromSubway、Aztec及更多 | BlockSec每週快報
Security Insights

~$18M損失:jaredFromSubway、Aztec及更多 | BlockSec每週快報

本週區塊鏈安全報告涵蓋2026年6月15日至21日,以太坊與BNB Chain共發生3起重大事件,總損失約1830萬美元。重點分析兩起事件:jaredFromSubway事件揭示反向授權攻擊模式——MEV機器人主動將資產授權給不可信第三方合約套利,攻擊者構造假包裝代幣與交易池,發出真實事件但從未消耗授權額度,損失約1500萬美元。Aztec三日內第二次漏洞:逃生艙ZK電路中`old_data_root`兩個見證值缺少相等約束,致使攻擊者可用偽造Merkle樹證明虛假票據所有權並通過鏈上驗證。

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit