TAL:CertiK:Vyper 5200万美元损失 事件详解_Italian Lira

有报告称 Vyper 0.2.15、0.2.16 和 0.3.0 版本存在漏洞,导致 Curve 上的许多池有遭受重入攻击的风险。该漏洞允许攻击者在移除流动性过程中调用添加流动性函数。

目前,总共有6,930万美元受到影响,其中1,670万美元已被白帽黑客追回。这也意味着此次事件造成了5,200万美元被盗,成为了2023年迄今为止金额最高的重入攻击。

2023年7月30日,专为以太坊虚拟机(EVM)设计的面向合约的编程语言 Vyper 编译器0.2.15、0.2.16 和 0.3.0 版本被宣布存在重入锁失效漏洞。多个 DeFi 项目受到该漏洞的影响,损失总额达 5,200 万美元。

CertiK 已确定有六个地址涉及此次事件。第一个(0x172)未能利用区块 17806056 中的漏洞。最初的漏洞利用者从 Tornado Cash 提取了 0.1 ETH,并继续创建攻击合约。然而,一个跑在前面的钱包(0x6Ec21)支付了更多的gas费用,并率先执行了交易,获得了大约 6,100枚WETH(1,140 万美元)。

Balancer:建议用户提现并将流动性迁移至非Boost版本:金色财经报道,Balancer发布推文称,建议Avalanche LST提供者、BENQI、Yield Yak、GoGoPool用户提现并将流动性迁移至非Boost版本,这些池已暂停且安全。但是,这些池将保持暂停状态,建议用户尽快迁移。Balancer UI 将通知所有用户是否在受影响的 LP 中持有流动性,并提供分步提款说明。[2023/8/24 18:18:27]

由MEV机器人在前置交易失败的漏洞 来源:Etherscan Etherscan 

该漏洞导致了进一步的损失:EOA 0xDCe5d 获得了价值约 2,100 万美元的资产。涉案钱包明细如下图:

共有6个项目受到影响,约有6,930万美元被盗走,其中1,670万美元已被归还,总计损失约为5,200万美元。

Vyper 是以太坊虚拟机(EVM)的一种面向合约的 pythonic 编程语言。Vyper 的测试版从 2017 年就开始有了,但其首个非测试版本是于2020年7月发布的 0.2.1 版。

Solidity是以太坊生态系统中的主流语言,它比Vyper存在的时间要长得多,因此许多社区成员创建了专门使用 Solidity 运行的工具。根据 DeFiLlama 的数据显示,在DeFi协议中价值约700 亿美元的总锁仓价值(TVL)中,Vyper 智能合约占 21.7 亿美元,而 Solidity 则占绝大多数,高达 674.9 亿美元。

Offchain Labs :Arbitrum One 网络现已恢复 宕机系主 Sequencer 节点中的硬件故障:1月10日消息,针对昨日的 Arbitrum One 网络宕机事件,Offchain Labs 发布博客表示目前该网络及所有公共 RPC 节点都已经恢复运行,具体宕机原因是主 Sequencer 节点中的硬件故障,“虽然我们通常有冗余,可以让备份 Sequencer 无缝控制,但由于正在进行软件升级,这些功能未能生效。结果,Sequencer 停止处理新事务。”

Offchain Labs 表示,将不遗余力地最大限度地延长正常运行时间,一旦 Arbitrum 完全去中心化,最有力的保证就会到来。[2022/1/10 8:37:18]

 根据语言划分的总锁仓价值 来源:DeFiLlama

截至2023年5月10日,Vyper的主导地位从 2020 年8月的30%高点降至 6.27%。尽管 Vyper的TVL 主导地位明显低于Solidity,但这一事件仍导致6,200万美元受到影响。

Balancer Labs宣布推出稳定池:金色财经报道,Balancer Labs发推文宣布推出稳定池,使之成为首个具备3种池子的AMM。目前Balancer Labs已经创建2个初始稳定池,分别是:staBAL3-BTC—WBTC/renBTC/sBTC及staBAL3- USD—DAI/USDC/USDT。[2021/7/9 0:37:58]

 不同编程语言在 TVL 中的主导地位 来源:DeFiLlama

编译器版本

编译器版本是指编程语言编译器的特定版本,编译器将人类可读的源代码转换为机器可读的代码。

编译器版本会定期更新,以引入功能、修复漏洞并增强安全性。Vyper 语言目前不提供白客漏洞悬赏计划。

版本 0.2.15 - 0.3.0

上文提到的就是Vyper 的0.2.15、0.2.16 和 0.3.0版本中发现了漏洞,导致了多个DeFi项目遭到重入攻击。

而最早的Vyper 漏洞版本 0.2.15 发布于2021年7 月23日。到同年12月发布 0.3.1 版时,之前的漏洞已不复存在。

时间线

事件最初开始于北京时间7月30日晚9点10分,攻击者针对Curve 上 JPEG’d池的交易由于前置运行交易而失败。

Cere将通过Republic,DAO和Polkastarter推出80倍超额认购后的公募:据官方消息,去中心化数据云(DDC)平台Cere Network宣布在Republic(4月8日)、DAO Maker(4月15日)和Polkastarter(4月19日)上公开发售。

Cere此前已经从一系列知名VC包括Binance Labs、OKEx、Republic Labs、Arrington XRP Capital、Kenetic Capital、Fenbushi Capital和AU21 Capital等筹集了1000万美元。最近一次500万美元的融资获得了80倍的超额认购,并在Republic上公开发行前完成。

据悉,Cere于2019年推出,Cere Network得到包括Gate.io、ZB exchange、Ankr、Ledger Prime、Woodstock fund、JRR Capital、Spark Capital、LD Capital、NGC Capital、QCP Capital、Monday Capital、G1 Ventures等在内的风投财团和生态系统合作伙伴的支持。[2021/4/1 19:36:19]

北京时间7月30日晚10点,JPEG‘d 确认 pETH-ETH Curve池已被恶意利用。

Aave上线AMM Market,允许Uniswap和Balancer的流动性提供商使用LP代币作为抵押品:3月17日消息,去中心化借贷协议 Aave (AAVE)宣布上线 AMM 市场(AMM Market),可以使 Uniswap 和 Balancer 的流动性提供商(LP)可以使用其 LP 代币作为 Aave 协议的抵押品,未来 Aave 有可能部署更多的 AMM 流动资金池。[2021/3/17 18:51:49]

Vyper 随后宣布,0.2.15、0.2.16 和 0.3.0 版本包括了一个失效的重入锁。Vyper 发布推文后,Metronome 和 Alchemix 也受到了影响。

Metronome DAO 宣布消息:

北京时间第二天凌晨,Curve Finance在 Discord 上发布公告称,剩余的资金池不受Vyper Bug的影响,是安全的。

Curve Finance 在 Twitter 上宣布,Arbitrum上的一个资金池有可能受到影响,但没有可供恶意行为者执行的有利可图的漏洞,这意味着资金池不太可能受到攻击。CertiK也尚未检测到任何其他利用Vyper漏洞的攻击。

以下是以JPEG’d为目标的交易示例:

攻击者: 0x6ec21d1868743a44318c3c259a6d4953f9978538

攻击合约: 0x466b85b49ec0c5c1eb402d5ea3c4b88864ea0f04#code

1.    攻击者首先从 Balancer:Vault中借入80,000 WETH (约合149,371,300美元)

2.    然后,攻击者将WETH 换成 ETH,调用 pETH-ETH-f.add_liquidity(),将 40,000 ETH(约合74,685,650美元)添加到 pETH-ETH-f 池中。作为回报,攻击者收到了32,431枚pETH(pETH-ETH-f)。

3.    攻击者调用 remove_liquidity() 删除了在步骤2中添加的流动性。3,740 pETH 和 34,316 ETH 被转入攻击合约,攻击合约的 fallbak() 函数被触发了,将控制权交给了攻击者。在 fallback() 函数中,攻击者又向 pETH-ETH-f 池中添加了40,000 ETH的流动性,并收到了 82,182 pETH。

4.    攻击者再次调用remove_liquidity(),取出10,272pETH,收到47,506 ETH和1,184pETH。然后,攻击者在pETH-ETH-f 池中用4,924枚 pETH交换了4,285枚ETH。

总的来说,攻击者从第3步获得了34,316枚ETH,从第4步获得了47,506和 4,285枚ETH,共计 86,107枚ETH。在偿还了 80,000 ETH闪电贷后,攻击者还剩下6,107 ETH(约11,395,506美元)。 

该漏洞允许攻击者在移除流动性过程中调用添加流动性函数。虽然这些函数本应受到 @nonreentrant('lock')的保护,但对 add_liquidty() 和 remove_liquidity() 函数的测试证明,它并不能防止重入攻击。

 Vyper_contract for Curve.fi Factory Pool 数据源: Etherscan

继利用 JPEG'd、Metronome 和 Alchemix 漏洞之后,Vyper 的 v0.2.15、v0.2.16 和 v0.3.0 版本确实存在重入保护失败的漏洞。

使用易受攻击的Vyper版本的项目应联系 Vyper协助进行缓解。项目也应尽量升级到不含此漏洞的最新版Vyper。

Vyper被攻击事件是CertiK2023 年检测到的最大的重入漏洞。就资金损失而言,该攻击损失金额占据了此类事件的78.6%。

今年两起最大的重入漏洞,都是利用Vyper编写的合约,尽管漏洞并不相同。

目前,2023 年所有链中因重入攻击造成的损失已超过 6,600 万美元。这比 2020年全年多出约400万美元,仅比 2021年的损失额少100万美元。值得注意的是,2023年的总额也比 2022 年因重新定位攻击造成的损失增加了 259.45%。

CertiK中文社区

企业专栏

阅读更多

Foresight News

金色财经 Jason.

白话区块链

金色早8点

LD Capital

-R3PO

MarsBit

深潮TechFlow

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-4:408ms