Back to Blog

LI.FI攻击:跨链桥漏洞?不,是未经验证的外部调用!

Code Auditing
March 21, 2022
3 min read

根据 LI.FI 项目的报告和 Daniel Von Fange 的推文,我们注意到 LI.FI 在 2022 年 3 月 20 日遭受了攻击。由于没有对该漏洞进行详细的技术分析,我们将在下面进一步分析此次攻击。我们发现这次攻击的根本原因在于未经检查的外部调用

攻击交易

我们从攻击交易开始,来说明攻击过程。下面的截图展示了我们的交易可视化系统的分析结果。

如上图所示,整个攻击过程相当简单,没有部署恶意智能合约,也没有涉及闪电贷。攻击者执行的唯一操作是调用 CBridgeFacet 合约中的 swapAndStartBridgeTokensViaCBridge(0x01c0a31a) 函数,该函数随后将各种代币(例如 USDC、MATIC、RPL、GNO、USDT、MVI、AUDIO、AAVE、JRT 和 DAI)从不同的支出方转移到由攻击者控制的EOA地址。

代码分析

接下来我们深入研究受害者逻辑合约的代码。

的代码
的代码
的代码
的代码

根据以上代码,swapAndStartBridgeTokensViaCBridge 是源链上跨链交易的入口。

LIFI 项目声称他们能够为用户找到最佳路线,称为 Smart Routing,这是在链下发生的。特别是,前端网站会计算最佳路线,并将参数(包括交换合约和路由路径)编码到 swapAndStartBridgeTokensViaCBridge 函数的参数中。

显然,LIFI 项目没有考虑到该函数可以被区块链上的任何账户调用,因为该函数不对参数进行任何检查,例如白名单和滑点。最严重的问题是 CBridgeFacet 合约要求用户授权代币,这使用户的资金面临风险。

收益

因此,攻击者通过调用 swapAnStartBridgeTokensViaCBridge 函数,窃取了 LIFI 用户授权代币给 CBridgeFacet 合约的资金,然后该函数调用了不同代币的 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 中最常见的 10 个问题之一

随着 DeFi 项目变得越来越复杂,项目开发者在编写正确的业务代码之余,还需要更加关注编写安全的代码。我们强烈建议项目要在区块链上部署未经审计的合约。

关于 BlockSec

BlockSec 是一家开创性的区块链安全公司,于 2021 年由一群全球杰出的安全专家创立。公司致力于增强新兴 Web3 世界的安全性和可用性,以促进其大规模采用。为此,BlockSec 提供智能合约和 EVM 链安全审计服务、用于安全开发和主动拦截威胁的 Phalcon 平台、用于资金追踪和调查的 MetaSleuth 平台,以及用于 Web3 构建者高效浏览加密世界的 MetaDock 扩展。

迄今为止,公司已为 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap 等 300 多家知名客户提供服务,并已从 Matrix Partners、Vitalbridge Capital 和 Fenbushi Capital 等知名投资者那里获得了两轮数千万美元的融资。

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

官方推特账号: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日的两起安全事件,确认损失约410万美元,涉及Ethereum和Cardano两条链。Taiko桥攻击中,攻击者利用泄露的SGX enclave签名密钥与attestation策略中缺失的属性验证,注册恶意prover并在Ethereum上伪造L2状态证明。SecondFi钱包漏洞源于Ed25519 nonce派生中的密码学实现缺陷,秘密输入被遗漏,使攻击者可从公开的Cardano链上交易数据离线恢复私钥。

~$1800万损失:jaredFromSubway、Aztec等项目受损 | BlockSec周报
Security Insights

~$1800万损失:jaredFromSubway、Aztec等项目受损 | BlockSec周报

本周区块链安全报告涵盖2026年6月15日至21日,以太坊和BNB链共发生3起重大事件,总损失约1830万美元,其中2起进行详细分析。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