多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?

根据 7 月 31 日凌晨以太坊编程语言 Vyper 发推表示,Vyper 0.2.15、0.2.16 和 0.3.0 版本有重入锁有漏洞,加上原生的 ETH 可以在转账时调 callback,导致这几个和 ETH 组的 lp 池子可以被重入攻击。

2023 年 7 月 30 日晚,多个项目迎来至暗时刻。

7 月 30 日 21:35 左右,据 Beosin 旗下 Beosin EagleEye 安全风险监控、预警与阻断平台监测显示,NFT 借贷协议 JPEG’d 项目遭遇攻击。

在 Beosin 安全团队正在分析之时,又有几个项目接连受损。

7 月 30 日 22:51 左右,msETH-ETH 池子被黑客突袭。

7 月 30 日 23:35 左右,alETH-ETH 池子被同样的攻击方式破解。

紧接着,DeFi 项目 Alchemix、Metronome 项目归属的流动性池子相继遭遇攻击。

同一个攻击方式,被黑客多次利用,到底是哪里出了问题?

多个项目遭受攻击的原因是 Vyper?

根据 7 月 31 日凌晨以太坊编程语言 Vyper 发推表示,Vyper 0.2.15、0.2.16 和 0.3.0 版本有重入锁有漏洞,加上原生的 ETH 可以在转账时调 callback,导致这几个和 ETH 组的 lp 池子可以被重入攻击。

多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?

接着 Curve 官方推特发文表示,由于重入锁出现故障,许多使用 Vyper 0.2.15 的稳定币池 (alETH/msETH/pETH) 遭到攻击,但其他池子是安全的。

多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?

Beosin 安全团队对遭受攻击项目的分析

以下为本次黑客攻击事件涉及的相关交易

●攻击交易

0xc93eb238ff42632525e990119d3edc7775299a70b56e54d83ec4f53736400964 0xb676d789bb8b66a08105c844a49c2bcffb400e5c1cfabd4bc30cca4bff3c9801

0xa84aa065ce61dbb1eb50ab6ae67fc31a9da50dd2c74eefd561661bfce2f1620c

0x2e7dc8b2fb7e25fd00ed9565dcc0ad4546363171d5e00f196d48103983ae477c

0xcd99fadd7e28a42a063e07d9d86f67c88e10a7afe5921bd28cd1124924ae2052

●攻击者地址

0xC0ffeEBABE5D496B2DDE509f9fa189C25cF29671

0xdce5d6b41c32f578f875efffc0d422c57a75d7d8

0x6Ec21d1868743a44318c3C259a6d4953F9978538

0xb752DeF3a1fDEd45d6c4b9F4A8F18E645b41b324

●被攻击合约

0xc897b98272AA23714464Ea2A0Bd5180f1B8C0025

0xC4C319E2D4d66CcA4464C0c2B32c9Bd23ebe784e

0x9848482da3Ee3076165ce6497eDA906E66bB85C5

0x8301AE4fc9c624d1D396cbDAa1ed877821D7C511

漏洞分析

根据 Beosin 安全团队的分析,本次攻击主要是源于是 Vyper 0.2.15 的防重入锁失效,攻击者在调用相关流动性池子的 remove_liquidity 函数移除流动性时通过重入 add_liquidity 函数添加流动性,由于余额更新在重入进 add_liquidity 函数之前,导致价格计算出现错误。

攻击流程

我们以 0xc93eb238f 交易攻击的 msETH-ETH-f 池子为例。

黑客攻击准备阶段,首先通过 balancer:Vault 闪电贷借出 10,000 枚 ETH 作为攻击资金。

多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?

攻击阶段:

1. 第一步,攻击者调用 add_liquidity 函数将闪电贷借入的 5000ETH 添加进池子中。

多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?

2.第二步,随后攻击者调用 remove_liquidity 函数移除池子中的 ETH 流动性时再次重入进 add_liquidity 函数添加流动性。

多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?

3. 第三步,由于余额更新在重入进 add_liquidity 函数之前,导致价格计算出现错误。值得注意的是 remove_liquidity 函数和 add_liquidity 函数已经使用了防重入锁防止重入。

多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?
多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?

4.因此这里防重入存在并未生效,通过阅读如下图所示的左边存在漏洞的 Vyper 代码可以发现当重入锁的名称第二次出现的时候,storage_slot 原有数量会加 1。换而言之,第一次获取锁的 slot 为 0,但是再次有函数使用锁后 slot 变为 1,重入锁此时已经失效。

多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?

https://github.com/vyperlang/vyper/commit/eae0eaf86eb462746e4867352126f6c1dd43302f

资金统计

截止发文时,本次攻击事件损失的资金已超 5900W 美元,Beosin KYT监测到目前 c0ffeebabe.eth 地址已归还 2879 个 ETH,被盗资金仍在多个攻击者地址上。

多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?

后续影响

关于本次事件造成的影响,7 月 31 日消息,币安创始人赵长鹏 CZ 发推称,CEX 喂价拯救了 DeFi。币安用户不受影响。币安团队已检查 Vyper 可重入漏洞。币安只使用 0.3.7 或以上版本。保持最新的代码库、应用程序和操作系统非常重要。

多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?

7 月 31 日消息,Curve 发推称,由于版本 0.2.15-0.3.0 中的 Vyper 编译器存在问题,CRV/ETH、alETH/ETH、msETH/ETH、pETH/ETH 被黑客攻击。此外,Arbitrum Tricrypto 池也可能会受影响,审计人员和 Vyper 开发人员暂未找到可攻击漏洞,但请退出使用。

可以看到本次事件造成的影响依然没有结束,这些池子有资金的用户还需要多加注意。

多个项目被黑,因Vyper重入锁漏洞造成的损失已超5900w美元,你的资金还安全吗?

针对本次事件,Beosin 安全团队建议:当前使用 Vyper 0.2.15、0.2.16 和 0.3.0 版本的重入锁均存在失效的问题,建议相关项目方进行自查。项目上线后,强烈建议项目方仍然关注第三方组件 / 依赖库的漏洞披露信息,及时规避安全风险。

(声明:请读者严格遵守所在地法律法规,本文不代表任何投资建议)

(0)
上一篇 2023年7月31日 下午11:39
下一篇 2023年7月31日 下午11:45

相关推荐

  • 关于流动性池我们需要知道的一切

    代币流动性,即购买和出售代币的能力,是代币经济学和任何 Web3 项目的核心部分。流动资金池是实现这一点的关键创新,它是 DeFi 中最优雅、最重要、也是最酷的部分之一。流动资金池是 DeFi 两个关键部分的基础:

    2022年10月29日
    1.5K
  • FTX崩塌后,用户数字资产交易与流向发生什么变化

    FTX 崩塌下,用户意识到将资金保存在缺乏足够透明度的 CEX。为此,一些 CEX 宣布将提供储备金证明,目的是让「黑箱」保管资金更加「透明」。 用户信任度逐步降低下,连 elonmusk 都在 TS 中表示:资产该保管在冷钱包。 上周用户数字资产交易与流向都有了什么变化?今天的 Datacheck 带来简短分析。

    2022年11月15日
    674
  • 探讨DeFi收益来源及其取舍

    加密货币的无许可和开源性质已经将 DeFi 变成了一个复杂的生态系统,它既广泛又深入,无尽的协议机制设计和今天存在的 2000 多个协议就是证明。因此,发现存在的收益率类型并浏览它们之间的基本权衡是一项艰难的任务。

    2022年11月25日
    239

发表回复

登录后才能评论
微信

联系我们
邮箱:whylweb3@163.com
微信:gaoshuang613