Float Protocol 在一次攻击中损失了约 2.8 万美元(约合 10.71 ETH)。攻击者利用闪贷操纵 Uniswap V3 的现货价格,进而影响其 Hypervisor 合约计算流动性提供者份额价值的方式。
Float Protocol 因闪贷攻击损失约 2.8 万美元(约合 10.71 ETH)。攻击者通过操纵 Uniswap V3 的现货价格,导致受影响的 Hypervisor 合约计算出虚高的 LP 份额价值。攻击者利用大额交易扭曲 currentTick() 和 getTotalAmounts() 的返回值,随后基于错误数值反复存款和提款。安全机构 SlowMist 指出,关键函数缺乏 TWAP 或预言机验证以及滑点保护机制。
SlowMist 于 8 月 31 日表示,攻击者扭曲了 Uniswap V3 的 slot0 现货价格,导致受影响的 Hypervisor 合约计算出错误的 LP 份额价值。该区块链安全公司将攻击溯源至那些缺乏 TWAP 或预言机验证以及滑点保护功能的函数。
攻击者通过在底层 V3 流动性池中进行大额交易,操纵了 currentTick() 和 getTotalAmounts() 的返回值。SlowMist 称,在 Hypervisor 合约基于虚高份额价值运行时,攻击者反复进行存款和提款操作。
安全公司确认了攻击者地址为 0xaea29218262dc6b0904ca077f6527c49dfd426d9,攻击合约地址为 0xb46655eb5b77de277063a75586d1883e951b6c54。两个受影响的合约地址分别为 0x85cbed523459b7f6f81c11e710df969703a8a70c 和 0xc86b1e7fa86834cac1468937cdd53ba3ccbc1153,底层流动性池地址为 0xe8c2036068fc3b0161ee1def0e8d01df4eac0ac。
此次攻击的核心在于受影响的合约如何从底层 Uniswap V3 池获取定价信息。SlowMist 表示,大额交易允许攻击者扭曲 slot0 的值——该值包含池子的当前价格和 tick 信息。
一旦池子价格被移动,currentTick() 和 getTotalAmounts() 的返回值也随之改变。受影响的 Hypervisor 合约使用这些被篡改的数据计算 LP 份额价值,使得攻击者能够在这些份额被错误定价时与合约进行交互。
闪贷为发动大额交易提供了临时资金。闪贷允许在不提供前置抵押的情况下借入资产,前提是贷款及费用在同一笔区块链交易中偿还。如果未能偿还,整笔交易将回滚。该机制使交易者能够获得大量临时流动性用于套利、抵押品互换和清算,但同样的流动性也可被用于利用脆弱的定价或智能合约逻辑。
在分析 Float Protocol 事件时,SlowMist 将损失归因于合约依赖可被操纵的现货价格,且缺乏与时间加权平均价格(TWAP)或其他预言机进行核验的检查机制。安全公司还指出,关键函数同样缺乏滑点保护。
SlowMist 称,攻击者在改变 Uniswap V3 池的价格后并未停手。在 slot0 被扭曲后,攻击者利用虚高的 LP 份额计算值,反复向受影响的合约存款和提款。
这一系列操作使得价值得以在合约依赖被操纵的池子状态时被提取。SlowMist 估计最终损失约为 10.71 ETH,在发布警报时价值约 2.8 万美元。
类似的攻击手法在其他 DeFi 攻击中也有出现:大额临时交易在另一个合约使用被操纵的值之前,扭曲了价格或池子比例。
另一桩 7 月的事件表明,即使弱点存在于协议智能合约之外,被操纵的定价信息也能被利用。Ostium 得出结论,其 2375 万美元 USDC 被盗事件源于被攻破的链下基础设施。该去中心化交易协议称,攻击者提交了虚假的 BTC/USD 价格报告,从而从其 OLP 流动性金库中抽走了资金。Ostium 表示其智能合约并非此次漏洞的源头。自动监控检测到攻击后,交易于 7 月 23 日恢复,协议报告用户抵押品未受影响。
Float Protocol 的事件涉及 SlowMist 描述的不同机制。安全公司的分析将弱点定位在受影响的 Hypervisor 合约内部,其中被操纵的 Uniswap V3 池数据能够影响用于估值 LP 份额的计算。
闪贷资金在今年其他攻击中也有出现。7 月针对 Swan Treasury 的攻击使用了一次 PancakeSwap 闪贷,此前一个被攻破的链下签名者密钥允许攻击者以大幅折扣购买 STY 代币。该事件造成约 62.5 万美元的损失。安全分析发现,攻击者利用协议被攻破的签名者密钥生成了伪造的申领和转账签名,从而以约 100 倍的折扣购买了约 687,000 枚 STY,随后将其抛售至 STY/USDT 池。闪贷为该交易提供了资金,而调查人员将底层漏洞归因于泄露的签名者密钥,而非协议的签名验证逻辑。
针对 Float Protocol 事件,SlowMist 特别指出攻击路径中缺少 TWAP 或预言机验证。TWAP 使用一段时间内收集的观测数据,而非仅依赖某一时刻的价格。流动性池内的现货价格会因大额交易改变资产比例而波动,SlowMist 认为这正是 Float Protocol 攻击者利用的机制。
价格操纵是临时流动性被用于攻击脆弱 DeFi 应用的常见方式之一。闪贷提供了攻击所需的资金,而可被利用的弱点可能存在于价格预言机、治理系统或合约逻辑中。在 Float Protocol 案例中,SlowMist 表示大额交易被用于扭曲 Uniswap V3 池的 slot0 值,进而改变 currentTick() 和 getTotalAmounts()。攻击者在受影响的 Hypervisor 合约计算虚高 LP 份额价值时反复存款和提款,导致约 10.71 ETH 的损失。