Clipper十二月漏洞事件技术分析
事件概述
12月1日周日,攻击者利用Clipper使用的智能合约中的漏洞,操纵了单资产存取功能。这种操纵影响了Optimism和Base网络的流动性池,导致资金池失衡,使攻击者能够提取比存入更多的资产。攻击在几小时内造成了约457,878美元的损失。
事件详情
事件时间:12月1日约凌晨4:00 GMT至下午5:00 GMT
受影响平台:
- Optimism网络:Clipper Optimism池(0x5130f6ce…)
- Base网络:Clipper Base池(0xb32d856c…)
未受影响平台:Arbitrum、Mantle、Polygon PoS、zkEVM和主网等其他链和池
攻击类型:利用单资产存取功能结合操纵导致资金池失衡
技术分析
攻击向量
攻击者利用了单资产存取功能。该功能设计允许用户仅使用一种资产而非完整的资金池资产组合进行存取操作。通过在低总锁定价值(TVL)的资金池中使用交换操作操纵余额,攻击者在获得初始存款签名后但在完成交易前改变了资金池状态,从而获利。
漏洞利用过程
获取存款签名:
- 攻击者通过Clipper的公共API请求了数千个单资产存款的签名
- 他们获得了与其存款对应的pool_tokens数量,但尚未执行交易
操纵资金池余额:
- 攻击者执行了交换操作并在交换输入中额外发送ETH,从而增加了pool_tokens的价值
- 由于Optimism和Base池余额较低,少量额外的输入资产可以推动资金池价值大幅比例增加
获取取款签名:
- 攻击者请求了许多单资产取款的签名,取款数量基于他们知道存款签名执行时将返回的pool_tokens数量
- 由于被操纵的资金池状态和多次存取操作,提取的价值大于他们在第2步中ETH补贴的价值
同时执行两个操作:
- 他们将存款和取款捆绑到单个交易中
- 这使他们能够提取比存入更多的资产
观察结果
针对低余额池:
- 攻击者专注于余额较低和k值较低的池,这使得操纵资金池状态更容易
- 没有TVL超过50万美元的池被利用
时间利用:
- 他们利用了获取签名和执行交易之间的时间差
影响评估
受损资金评估:
- Optimism池:余额从318,710美元减少至22,908美元
- Base池:余额从197,790美元减少至35,714美元
- 总估计损失:约457,878美元
运营影响:
- API上的所有活动被暂时暂停
事件时间线
攻击开始:
- 4:14:00 GMT:攻击者通过获取存款签名启动漏洞利用
- 4:14:31 GMT:执行带有额外ETH输入的交换操作
- 4:15:05 GMT:获取取款签名并执行捆绑交易
响应:
- 1:00 PM GMT:按照预先建立的应急响应协议,暂停API并启动攻击调查
立即行动
禁用API端点:
- 1:00 PM GMT:暂时关闭提供交换、存取款访问的API端点
启动调查:
- 1:00 PM GMT:AdmiralDAO开始分析日志和交易数据以确定初步根本原因
联系安全团队:
- 2:00 PM GMT:联系Hypernative(首先主动联系我们)、Quantstamp和SEAL 911协助调查问题
根本原因分析
小池允许失衡和利用:
- 低余额和低k值结合L2上的低交易成本使池更容易被操纵
- Base和Optimism是两个最小的池,Optimism的k值比其他任何链低5倍
保护措施未应用于单资产存取款:
- 为防止恶意交换构建的保护措施未应用于单资产存取款(包括交换)
缺乏链上验证:
- Clipper的智能合约在正常交换执行期间验证资金池不变量并检查重大状态变化,但这在单资产取款上不常见
API限制:
- API端点有机制检测异常请求模式并防止正常交换的滥用,但这在单资产取款上不常见
最近更新在Clipper的断路器引入错误:
- 最近的数据库升级引入了与断路器逻辑的意外交互,测试环境中未检测到
潜在修复行动
合约增强
扩展不变量检查:
- 实施链上验证以确保在单资产取款期间资金池不变量一致
扩展预言机价格验证:
- 集成链上价格预言机验证存取款时的资产价值
考虑对存款实施短期锁定期:
- 如果新存款锁定时间超过存款签名有效期,攻击将不可能发生
API和后端安全改进
断路器(自动停止):
- 扩展断路器系统以在检测到资金池或存取款活动异常时自动停止存取款操作
扩展行为监控:
- 添加系统以检测类似机器人的行为和存取款端点的异常API使用
配置保护措施:
- 针对池的k参数异常配置、存取款签名过期时间和存款锁定时间实施防御性代码
考虑主动监控
- 探索使用安全公司的早期警告来提示预防性调查或触发断路器
聘请调查公司追踪和恢复资金
- AdmiralDAO正在聘请事件响应公司ZeroShadow来追踪和尝试恢复资金
资源
交易详情:
- 攻击者地址:0x318c6ca86749f17bf43b78aefd83acd8988c2029
智能合约参考:
- Optimism池合约:0x5130f6ce257b8f9bf7fac0a0b519bd588120ed40
- Base池合约:0xb32d856cad3d2ef07c94867a800035e37241247c
常见问题解答
安全审计中是否识别了此问题?
- 漏洞利用利用了已知漏洞的组合,虽然单独缓解了,但总体上未缓解
资产会被退款吗?
- 已聘请追踪和恢复公司(Zeroshadow)。一旦评估了恢复可能性,将考虑融资退款的方法
Clipper何时重新启用交易?
- 修复措施应在几天内实施。此后,Clipper将执行安全审查并重新激活交易