作者:Kong & Lisa
编辑:Liz
背景
5 月 28 日,慢雾(SlowMist) 检测到与 Cork Protocol 相关的潜在可疑活动并发布安全提醒,建议用户提高警惕,注意账户与资金安全。
(https://x.com/SlowMist_Team/status/1927705256915333359)
不久后,Cork Protocol 发布公告表示:“今日 UTC 时间 11:23,wstETH:weETH 市场发生安全事件。为防止风险扩大,Cork 已暂停所有其他市场交易,目前暂无其他市场受影响。团队正在积极调查事件原因,并将持续更新相关进展。”
(https://x.com/Corkprotocol/status/1927808041984086083)
事件发生后,慢雾安全团队第一时间介入分析,以下是对攻击手法及资金转移路径的详细解析。
前置知识
Cork Protocol 是一个旨在为 DeFi 生态提供类似传统金融中信用违约掉期(CDS) 功能的工具 —— Depeg 掉期,专门用于对冲稳定币、流动性质押代币、RWA 等挂钩资产的脱锚风险。其核心机制围绕稳定币和流动性质押代币的脱锚风险展开,允许用户通过交易风险衍生品,将稳定币或 LST/LRT 的价格波动风险转移给市场参与者,从而降低风险并提升资本效率,关键概念如下:
RA(Redemption Asset | 赎回资产):Cork 市场中用于赎回或结算脱锚事件的基准资产(例如 ETH::stETH 市场中的 ETH)。
PA(Pegged Asset | 挂钩资产):存在脱锚风险的资产,目标是与 RA 保持价格挂钩,但可能因市场波动、协议风险等因素偏离锚定汇率(例如 ETH::stETH 市场中的 stETH)。
DS(Depeg Swap | 脱锚掉期):Cork 协议发行的核心衍生工具,用于对冲脱锚风险,本质类似传统金融中的信用违约掉期(CDS),用户可以购买此类代币来规避脱锚风险。
CT(Cover Token | 覆盖代币):与 DS 配对的衍生工具,用于承担脱锚风险并赚取收益,类似 CDS 中的卖方角色,如果发生脱锚,持有者将承担损失。
Exchange Rate:衡量 PA 与 RA 之间价值关系的核心参数,直接影响脱锚事件的判定和衍生品交易的结算逻辑。目前,Cork 协议允许用户使用自定义 Exchange Rate Provider 创建市场。
Cork Vault:自动化管理跨期限的流动性,提升资本效率。
Peg Stability Module (PSM):负责铸造/销毁 DS 和 CT,设定市场期限,并通过 AMM 动态调整价格。其允许用户做以下兑换:
PA + DS = RA
CT + DS = RA
根本原因
此次攻击的根本原因在于一方面 Cork 允许用户通过 CorkConfig 合约创建以任意资产作为赎回资产(RA),使得攻击者可以将 DS 作为 RA 使用。另一方面任意用户都可以无需授权的调用 CorkHook 合约的 beforeSwap 函数,并允许用户传入自定的 hook 数据进行 CorkCall 操作,使得攻击者可以操控,将合法市场中的 DS 存入另一个市场中作为 RA 使用,并获得对应的 DS 和 CT 代币。
攻击分析
攻击者首先在合法市场上用 wstETH 购买了 weETH8CT-2 代币,以便最后可以与 DS 代币组合赎回作为 RA 的 wstETH 代币。
RA: weETH8DS-2
PA: wstETH
CT: wstETH5CT-3
DS: wstETH5DS-3
而 weETH8DS-2 所在市场的关键代币对应如下:
RA: wstETH
PA: weETH
CT: weETH8CT-2
DS: weETH8DS-2
创建完新市场后,攻击者通过向市场添加一定的流动性以使得协议可以在 Uniswap v4 中初始化对应的流动性池,以便 CorkHook 后续可以在此池子执行 beforeSwap。
紧接着,最关键的是,只要在 Uniswap V4 Pool Manager 解锁的条件下,任何用户都可以调用 CorkHook 的 beforeSwap 函数传入任意参数,对协议的市场流动性进行操作。因此,攻击者通过 Uniswap V4 Pool Manager 在解锁时的 unlockCallback 功能,调用 CorkHook 的 beforeSwap 函数并传入其自定的市场以及 hook 数据。
beforeSwap 将回调合法市场的 CorkCall 函数,执行指定的 hook 数据:
在获得 weETH8DS-2 代币后,攻击者即可将其与先前购买的 weETH8CT-2 代币匹配,以在原有的市场赎回 wstETH 代币。
至此,攻击者利用了市场未限制赎回资产类型以及协议并未验证 CorkHook.beforeSwap 的调用者与传入数据,使得其可以将合法的市场的 DS 流动性转移到另一市场作为 RA 进行赎回,来窃取任意市场的流动性。
MistTrack 分析
据链上反洗钱与追踪工具 MistTrack 分析,攻击者地址 0xea6f30e360192bae715599e15e2f765b49e4da98 获利 3,761.878 wstETH,价值超 1,200 万美元。
此外,攻击者的初始资金来自 Swapuz.com 转入的 4.861 ETH。
截至目前,共有 4,530.5955 ETH 停留在攻击者地址上,我们将持续对资金进行监控。
总结
此次攻击的根本原因在于未严格验证用户传入的数据是否符合预期,从而使得协议流动性可以被操控转移到非预期的市场中,进而被攻击者非法赎回获利。慢雾安全团队建议开发者在进行设计时,应该谨慎验证协议的每一步操作是否都在预期中,并严格限制市场的资产类型。
原文始发于微信公众号(慢雾科技):被黑分析|Cork Protocol 遭攻击,损失超千万美元
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论