Back to Blog

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

Code Auditing
March 21, 2022
4 min read

根據 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

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