返回部落格

Vee Finance 安全事件的真正根源

Code Auditing
2021年9月22日
閱讀約 3 分鐘

VEE finance 發布了關於近期安全事件的報告。在該報告中,他們指出根本原因是「操縱 VEE Finance 預言機價格,且獲取預言機價格的過程未處理小數點,導致交易前的預期滑點檢查失效。」

「此次事故的主要原因是,在創建槓桿交易訂單的過程中,預言機僅使用 Pangolin 流動性池的價格作為價格來源,且池內價格波動超過 3%。預言機刷新了價格,導致攻擊者操縱了 Pangolin 池的價格。操縱 VEE Finance 預言機價格且獲取預言機價格的過程未處理小數點,導致交易前的預期滑點檢查失效。」——引用自 VEE finance 發布的報告。

然而,經過我們仔細調查,我們發現事實並非如此。真正的原因是攻擊者創建了一個虛假的 ctokenB 並將其傳遞給合約。由於 ctokenB 由攻擊者控制,它可以返回用於計算代幣價格的任意底层代幣。這才是攻擊的真正根本原因。

整個過程

合約中存在一個名為 createOrderERC20ToERC20 的外部函數,任何用戶都可以調用它來創建代幣兌換,該函數使用通過將抵押品放入合約而獲得的 ctokenctoken 具有代表真實代幣的底层代幣(underlying token)。

在正常情況下,當調用 createOrderERC20ToERC20 使用槓桿交易代幣對時,DApp 需要確保該交易不會產生任何損失(否則 DApp 將會虧損)。這是通過調用 getAmountOutMin 函數來強制執行的。

假設我們將 0.95 ETH 放入 DApp 並獲得價值 0.5 ETH 的 ctoken(超額抵押)。那麼我們可以利用 3 倍槓桿要求 DApp 代表用戶以 1.5 ETH 的金額交易另一種代幣(假設為 tokenX)。在這種情況下,為了防止損失,DApp 需要確保交易後的 tokenX 價值不能低於 0.95 * 1.5 ETH(否則 DApp 將面臨虧損風險)。DApp 利用外部價格預言機來計算 ETH 和 tokenX 的價值。

然而,createOrderERC20ToERC20 函數並沒有驗證傳入的 ctokenB。因此,攻擊者可以實現自己的合約作為 ctokenB 並將其提供給 createOrderERC20ToERC20 函數。結果是,這個虛假的 ctokenBcreateOrderERC20ToERC20getAmountOutMin 中被調用時,可以將底层代幣返回為 LINK (0x5947bb275c521040051d82396192181b413227a3),但在 IPriceOracle(oracle).getUnderlyingPrice(createParams.ctokenB) 被調用時,卻將底层代幣返回為 BTC。因此,它可以繞過 isRightPrice 的檢查——因為用於計算價格的代幣是 BTC(而不是 LINK)。這可以由 priceB 的返回值 0x15e1549d1216fe9fc032e7c00000 (443783124870000000000000000000000) 來證實。這正是 BTC 的價格。

結論

總之,攻擊者利用了 ctokenB 缺乏檢查的漏洞。由於 ctokenB 並非受信任的合約,因此 ctokenB 返回的底层代幣不可信。然而,在此次攻擊中,價格預言機本身並沒有被攻破。

總結與建議

確保 DeFi 項目的安全並非易事。除了代碼審計外,我們認為社區應該採取主動的方法來監控項目狀態,並在攻擊發生前進行攔截

關於 BlockSec

BlockSec 是一家開創性的區塊鏈安全公司,由一群全球知名的安全專家於 2021 年創立。公司致力於增強新興 Web3 世界的安全性和可用性,以促進其大規模採用。為此,BlockSec 提供智能合約與 EVM 鏈的安全審計服務、用於安全開發與主動威脅阻斷的 Phalcon 平台、用於資金追蹤與調查的 MetaSleuth 平台,以及協助 Web3 建構者在加密世界中高效探索的 MetaSuites 瀏覽器插件。

迄今為止,公司已服務超過 300 家知名客戶,如 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap,並已獲得包括 Matrix Partners、Vitalbridge Capital 和 Fenbushi Capital 在內的頂尖投資機構兩輪數千萬美元的融資。

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

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

訂閱最新動態
超越智能合約:Web3中的網域與DNS營運安全
Security Insights

超越智能合約:Web3中的網域與DNS營運安全

合約審計止步於合約本身。我們針對 DefiLlama TVL 前 100 名背後的 100 個網域,執行了八項基於 SEAL 的 DNS 與註冊商檢查——共 800 項檢查,僅有一個網域全數通過。以下是大多數專案缺失的四項關鍵控制,以及它們在用戶入口點的重要性。

Web3攻擊面:滲透測試概覽

Web3攻擊面:滲透測試概覽

加密機構保留所有傳統攻擊面,並疊加資金處理鏈。本文為測試人員提供系統的實用抽象:四組件模型——應用、授權與簽名、區塊鏈互動、基礎設施,說明各組件職責、代表性實現及繼承的攻擊面。並將web3特有範疇分為五大攻擊面:生產與自動化運維、簽名意圖、審批與提款鏈、資金邏輯、鏈上交易與已部署合約。

損失約2,300萬美元:Cosmos EVM、Moonwell 遭利用 | BlockSec Weekly
Security Insights

損失約2,300萬美元:Cosmos EVM、Moonwell 遭利用 | BlockSec Weekly

報告期間(2026/08/22 - 2026/08/30)內,共涵蓋5起區塊鏈安全事件,損失約2,270萬美元;Tectonic遭抽走約7,400萬至1.195億美元,其中大部分因Cronos回滾至攻擊前狀態而消除。重點事件為橫跨六條鏈的Cosmos EVM漏洞系列(實際損失約570萬美元),於TAC Chain追蹤發現,一個共享餘額同步漏洞串聯下溢與上溢攻擊,抽乾質押池。報告亦分析Moonwell的抵押品計算與預言機價格操縱組合攻擊、Tectonic針對低流動性抵押品的預言機價格與憑證代幣匯率操縱組合攻擊、Ajna清算業務邏輯漏洞,以及Solana上的Rain Card合約漏洞系列,涉及Ed25519簽名驗證繞過(Avici、Tria等)。

Web3 最佳安全審計方

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

BlockSec 審計
Vee Finance 安全事件的真正根源