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
~$135萬美元損失:BarnBridge、DeFiTuna | BlockSec 週報
Security Insights

~$135萬美元損失:BarnBridge、DeFiTuna | BlockSec 週報

本週報告涵蓋2026年7月13日至19日的2起安全事件,以太坊和Solana總損失約135萬美元。Solana借貸協議DeFiTuna損失約57萬美元,原因是倉位健康檢查將零值倉位視為健康而忽略未償債務,攻擊者利用可控的交換路由和低流動性池觸發此缺陷。BarnBridge損失約77.6萬美元,攻擊者利用以太坊上已棄用但仍活躍的治理系統通過惡意提案並竊取用戶授權的USDC。

~$800K損失:Hinkal雙重支付事件 | BlockSec週報
Security Insights

~$800K損失:Hinkal雙重支付事件 | BlockSec週報

本週安全報告涵蓋2026年6月29日至7月5日1起重大事件,以太坊損失約80萬美元。Hinkal隱私池協議遭雙重花費攻擊,攻擊者疑似利用舊版票據格式漏洞,從單筆存款衍生出多個無效化符號。報告分析了可能的電路層漏洞、攻擊流程及對基於無效化符號的隱私協議的廣泛影響。

電子報 - 2026年6月
Security Insights

電子報 - 2026年6月

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

Best Security Auditor for Web3

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

BlockSec Audit