7 月 31 日,以太坊编程语言Vyper发布公告称,Vyper 0.2.15、0.2.16 和 0.3.0 版本的递归锁失效。随后Curve Finance等相关协议出现了漏洞攻击事件。 漏洞的根源都是某些版本的 Vyper 中出现故障的递归锁。攻击者通过反复重新签署合约,导致未经授权的操作或资金被盗。

Curve被攻击的资金池包括CRV/ETH、alETH/ETH、msETH/ETH以及pETH/ETH 。超过 4500 万美元的流动性已从借贷协议 Alchemix、合成资产 Metronome 、NFT 借贷平台 JPEG’d 的池中中流失,近 2500 万美元从 CRV/ETH 池中流出。每个资金池的被攻击金额如下:

CRV/ETH : 7,193,401.77 CRV (被攻击时价值约 510 万美元 ),7,680.49 WETH (约 1420 万美元)以及2,879.65 ETH (约 540 万美元)
alETH/ETH:7,258.70 WETH (约 1360 万美元) 以及 4,821.55 alETH (约 900 万美元)
msETH/ETH:866.55 WETH (约 160 万美元) and 959.71 msETH (约 180 万美元)
pETH/ETH:6,106.65 WETH (1100 万美元)

接下来我们通过举例CRV/ETH池来分析一下攻击路径。

CRV/ETH 池涉及2笔攻击交易(第二笔是白帽交易)。

攻击交易1
ETH Transaction Hash:0x2e7dc8b2fb7e25fd00ed9565dcc0ad4546363171d5e00f196d48103983ae477c / ETH Block Explorer

7 月 30 日 19:08 UTC,发生了一次攻击,Curve 池中的 CRV 和 ETH 遭受损失。 攻击者获利7,193,401.77 CRV(当时价值约 510 万美元)和 7,680.49 WETH(约 1420 万美元)。

攻击路径如下:

  • 攻击者从 Balancer开设了10,000 WETH 闪电贷,并将其全部unwrapped为 ETH。
  • 随后他们向 Curve CRV/ETH 池提供了 400 ETH 作为流动性,并收到了 9,804.78 CRV/ETH LP 代币。
  • 将 500 ETH 兑换为 1,212,778.28 CRV。
  • 从池中提取 517,589.04 CRV 和 203.26 ETH,销毁4,674.13 CRV/ETH LP 代币。
  • 提取 1,730,367.33 CRV,销毁 4,674.13 CRV/ETH LP 代币。
  • 将 1,730,367.33 CRV 兑换为 639.89 ETH。
  • 重复此过程,直到 CRV 从池中全部消耗。

截止目前7,193,401.77 CRV和 7,680.49 WETH已转移至 CRV/ETH攻击者钱包地址。
CRV/ETH攻击者地址:
CRV/ETH Exploiter 2 | ETH Address: 0xb1c33b391c2569b737ec387e731e88589e8ec148 / Tokenview Block Explorer

该攻击是独特的,因为除了“递归锁漏洞”攻击之外,还进行了套利攻击。 因为 CRV-ETH 池是本次事件中唯一被攻击的非稳定池。

攻击交易2
ETH Transaction Hash:0xcd99fadd7e28a42a063e07d9d86f67c88e10a7afe5921bd28cd1124924ae2052 / ETH Block Explorer

7 月 30 日 22:00 UTC,发生了第二次攻击,耗尽了池中剩余的 2,879.65 ETH。 这是 c0ffeebabe.eth 的白帽行动,不久后返还给 Curve 团队 。

被攻击路径如下:

  • 攻击者从 Balancer 开设了 100 WETH 的闪电贷。
  • 他们在 Uniswap 上将 70 WETH 兑换为 190,388.61 CRV。
  • 存入30,000 CRV到池中。
  • 向 Curve 池所有者索取 1,493.16 CRV/ETH LP 代币的管理费。
  • 将池中的 160,388.61 CRV 兑换为 2,949.65 WETH。
  • 向 Curve 池所有者索取 83,647.01 CRV/ETH LP 代币的管理费。
  • 向 Balancer 偿还 100 WETH 以归还闪电贷。
  • 最终2,879.65 ETH(约 540 万美元)已返还至Curve Deployer 地址。
    白帽子返还2,879.65 ETH的交易如下:ETH Transaction Hash:0xb76754124fdde090f25129105ed2907e3c62e0db87ecb8ffcefcb1dede0954fd / ETH Block Explorer

此次Curve攻击事件主要来自Vyper漏洞而产生的合约安全威胁。随着代币CRV价格下跌,由于CRV流通量接近一半都掌握在创始人Michael Egorov手中,因此他也展开了自救行动,开始偿还部分贷款并取回作为抵押品的CRV。这次的攻击事件也再次为整个Defi市场安全提出警告。