freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

SharkTeam:Vyper漏洞导致Curve和JPEGd等项目被攻击原理分析
2023-07-31 22:11:55
所属地 江苏省

7月30日,因为Vyper部分版本中的漏洞,导致Curve、JPEG'd等项目陆续受到攻击,损失总计超过5200万美元。

1690812497_64c7c051afdf7d64b8f24.png!small?1690812498193

SharkTeam对此事件第一时间进行了技术分析,并总结了安全防范手段,希望后续项目可以引以为戒,共筑区块链行业的安全防线。

一、事件分析

以JPEG'd被攻击为例:

攻击者地址:0x6ec21d1868743a44318c3c259a6d4953f9978538

攻击者合约:0x9420F8821aB4609Ad9FA514f8D2F5344C3c0A6Ab

攻击交易:0xa84aa065ce61dbb1eb50ab6ae67fc31a9da50dd2c74eefd561661bfce2f1620c

(1)攻击者(0x6ec21d18)创建0x466B85B4的合约,通过闪电贷向 [Balancer: Vault]借了80,000 枚WETH。

1690812507_64c7c05bec938cdfc75e9.png!small?1690812508819

(2)攻击者(0x6ec21d18)向pETH-ETH-f(0x9848482d)流动性池中添加了40,000枚WETH,获得32,431枚pETH。

1690812516_64c7c0644add973d90a70.png!small?1690812516778

(3)随后攻击者(0x6ec21d18)从pETH-ETH-f(0x9848482d)流动性池中重复地移除流动性。

1690812524_64c7c06ce55cc82fbc23e.png!small?1690812526338

(4)最终,攻击者(0x6ec21d18)获得86,106枚WETH,归还闪电贷后,获利6,106枚WETH离场。

二、漏洞分析

(1)该攻击是典型的重入攻击。对遭受攻击的项目合约进行字节码反编译,我们从下图可以发现:add_liquidity 和 remove_liquidity 两个函数在进行校验存储槽值时,所要验证的存储槽是不一样的。使用不同的存储槽,重入锁可能会失效。此时,怀疑是Vyper底层设计漏洞。

1690812535_64c7c077de2e266ae48ce.png!small?1690812537200

(2)结合Curve官方的推文所说。最终,定位是Vyper 版本漏洞。该漏洞存在于0.2.15、0.2.16、0.3.0版本中,在重入锁设计方面存在缺陷。我们对比0.2.15之前的0.2.14以及0.3.0之后的0.3.1版本,发现这部分代码在不断更新中,老的0.2.14和交心的0.3.1版本没有这个问题。

1690812545_64c7c081da734bb91021a.png!small?1690812546542

1690812557_64c7c08d9197e378f40e8.png!small?1690812559514

(3)在Vyper对应的重入锁相关设置文件data_positions.py中,storage_slot的值会被覆盖。在ret中,第一次获取锁的slot为0,然后再次调用函数时会将锁的slot加1,此时的重入锁会失效。

1690812566_64c7c096392de4bbb2c88.png!small?1690812567713

漏洞总结:本次攻击事件根本原因是Vyper的0.2.15、0.2.16、0.3.0版本的重入锁相关设计不合理,并且没有进行足够全面的功能测试。导致后期使用这些版本的项目中重入锁失效,最终遭受了黑客攻击。

三、安全建议

对于本次攻击事件,开发人员在日常开发中应当采取有以下的安全措施:

(1) 项目方需保障功能设计合理并对代码进行全面测试,防止遗漏某些功能的测试。

(2) 项目发版前,需要向第三方专业的审计团队寻求技术帮助。

# 区块链 # 区块链安全 # 区块链技术
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录