返回部落格

當「SafeTransfer」不再安全:QBridge 安全事件的教訓

Code Auditing
2022年1月28日
閱讀約 2 分鐘

1 月 28 日,QBridge 遭到攻擊,約 8,000 萬美元的資產被盜。經過分析,我們發現程式碼中的根本原因在於 safeTransfer(以及 safeTransferFrom)函數的實作方式。

根本原因

首先,該項目並未使用普及的 OpenZeppelin SafeERC20 函式庫來進行代幣轉帳,而是實作了一個名為 SafeToken 的函式庫。

其次,該實作未檢查目標是否為有效的合約(或是否為零地址)。

第三,EVM 的底層呼叫(low-level call)在目標合約為零時不會回傳 false。 這與開發者的常識相違背。

當然,此次事件還有其他原因,例如將零地址放入了白名單中。然而,如果程式碼能正確處理這種特殊情況,那麼它就不會存在漏洞。

順帶一提:市面上還有其他項目使用了類似的程式碼,它們可能也容易受到類似問題的影響。

實驗

為了驗證第三點(即當目標合約為零時,虛擬機不會回傳 false),我們開發了一個測試合約,如下所示:

執行 TestSafeTransfer.test() 不會觸發回滾(revert)。

教訓與如何降低風險

我們建議:

  • 除非有非常充分的理由,否則請使用普及的函式庫,不要嘗試「重新發明輪子」。
  • 在資產轉移前後檢查餘額,以確保轉移的資產數量符合預期。這同時也能避免通貨緊縮和通貨膨脹代幣帶來的問題。

關於 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

訂閱最新動態
超越智能合約: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 審計