返回部落格

LI.FI 攻擊:跨鏈橋漏洞?不,這是未檢查外部調用所致!

Code Auditing
2022年3月21日
閱讀約 4 分鐘

根據 LI.FI 專案發布的報告以及 Daniel Von Fange 的 Twitter,我們注意到 LI.FI 在 2022 年 3 月 20 日遭受了攻擊。由於目前尚無針對此漏洞的詳細技術分析,我們在下方對該攻擊進行了進一步分析。我們發現此次攻擊的根本原因在於未經檢查的外部呼叫 (unchecked external call)。

攻擊交易

我們以該攻擊交易為切入點來闡述攻擊過程。下圖顯示了我們交易視覺化系統的結果。

如上圖所示,整個攻擊過程相當簡單,過程中沒有部署任何惡意智慧合約,也沒有涉及閃電貸 (flashloan)。 攻擊者僅採取了的一個步驟:呼叫 CBridgeFacet 合約 中的 swapAndStartBridgeTokensViaCBridge(0x01c0a31a) 函式,隨後該函式便將各種代幣(例如 USDC、MATIC、RPL、GNO、USDT、MVI、AUDIO、AAVE、JRT 及 DAI)從不同的授權者轉移至該攻擊者控制的 EOA 帳戶中。

程式碼分析

接著我們深入分析受害邏輯合約的程式碼。

的程式碼
的程式碼
的程式碼
的程式碼

根據上述程式碼,swapAndStartBridgeTokensViaCBridge 是來源鏈上跨鏈交易的入口。

LIFI 專案聲稱他們可以為用戶找到最佳路由,這被稱為發生在鏈下的「智慧路由 (Smart Routing)」。具體而言,前端網頁會計算出最佳路由,並將參數(包括交換合約與路由路徑)編碼到 swapAndStartBridgeTokensViaCBridge 函式的參數中。

顯然,LIFI 專案並未考慮到該函式可能會被區塊鏈上的任何帳戶所呼叫,因為該函式未對參數執行任何檢查(例如白名單限制或交換滑點限制)。最嚴重的是,CBridgeFacet 合約要求用戶授權代幣,這導致了用戶的資金面臨風險。

獲利情況

結果就是,攻擊者透過呼叫 swapAndStartBridgeTokensViaCBridge 函式,竊取了已將代幣授權給 CBridgeFacet 合約的 LIFI 用戶資金;該函式隨後呼叫了不同代幣的 transferFrom 函式。損失統計如下表所示。總損失約為 59.6 萬美元,這與 LIFI 專案提供的統計數據基本一致。

代幣 數量 價格
GNO 0.94 310.22
USDC 202,012.28 0.999655
MATIC 3,144.89 1.46
AUDIO 1,202.37 1.10
AAVE 8.99 149.99
RPL 44.86 31.2
MVI 22.95 131.82
USDT 368,745.29 1
DAI 8,421.49 0.999847
JRT 136,805.06 0.03789613

教訓

LIFI 是一個跨鏈橋聚合器,受害合約是跨鏈傳輸的入口。此漏洞並非源於複雜的跨鏈邏輯(這在此前其他跨鏈橋安全事件中常出現),而是源於未經檢查的外部呼叫,這是 Solidity 中十大常見問題之一。

隨著 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

訂閱最新動態
NEAR Intents 遭攻擊:退款漏洞與資安教訓
Security Insights

NEAR Intents 遭攻擊:退款漏洞與資安教訓

NEAR Intents 遭到攻擊時,攻擊者利用金額過大的退款事件,在存入的資產退回後仍保留內部餘額。本文分析重建回執流程及 BNB Chain 上合計 3,865,021 USDT 的七筆出金,將這些資金流出與專案方所稱的資金全數追回區分開來,並概述開發及審計 NEAR 智能合約時應注意的安全事項。

損失約 557萬 USD:X100 Freezer、NEM 遭攻擊 | BlockSec 週報
Security Insights

損失約 557萬 USD:X100 Freezer、NEM 遭攻擊 | BlockSec 週報

本週報涵蓋 2026年10月19日–2026年10月25日 期間發生在 Ethereum 和 BNB Chain 上的兩起安全事件。報告分析了以閃電貸提供資金、奪取 X100 Freezer 治理權的事件,以及影響 BNB Chain 上某個 NEM 代幣流動性池的稅費結算缺陷。報告範圍內的估計損失合計約 557萬 USD:具代表性的 X100 交易造成約 475萬 USD 的損失,NEM 流動性池事件造成約 82.0萬 USD 的損失。此合計金額不包含另行報導的後續 X100 資金提取。

損失約 387萬 USD:Autheo Network、UNCX 遭駭|BlockSec 週報
Security Insights

損失約 387萬 USD:Autheo Network、UNCX 遭駭|BlockSec 週報

本週報告涵蓋 2026年10月12日–2026年10月18日 期間的 3 起安全事件,估計總損失約為 387萬 USD。Autheo Network 因私鑰遭入侵損失約 176萬 USD;Qubic Wallet 因種子產生機制薄弱損失約 130萬 USD;UNCX Network 的 Smart Token Vesting V2 合約在 Ethereum、BNB Chain、Base 和 Robinhood Chain 上因帳務計算錯誤造成約 80.7萬 USD 的損失。重點分析的 UNCX 事件說明,有缺陷的份額總計計算如何將以不同代幣與份額比率建立的代幣歸屬批次混在一起,進而使人得以從共用資金池超額提領。

Web3 最佳安全審計方

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

BlockSec 審計
LI.FI 攻擊:跨鏈橋漏洞?不,這是未檢查外部調用所致!