EXCL:成都链安:VETH智能合约被攻击事件分析_REXC

2020年6月30日下午5:46,Beosin-OSINT威胁情报系统发现VETH智能合约遭受攻击,被盗919299个VETH。成都链安-安全研究团队第一时间对本次事件进行跟踪分析。根据链上交易显示:攻击者利用自建合约通过Uniswap将0.9ETH兑换为138VETH,之后对VETH智能合约发起攻击,在攻击完成后自建合约进行自我销毁。本次攻击成本仅0.9ETH,约合200美元。交易详情如下:

科技部公示10个国家级区块链重点项目:12月8日消息,科技部发布了国家重点研发计划“区块链”重点专项2021年度拟立项项目安排公示的通知,并公示了10个项目。其中包括“新型区块链体系架构设计理论与方法”“区块链生态安全监管关键技术研究”等项目,承办单位包括7家高校、2家研究院、1家公司。(科创板日报)[2021/12/8 12:59:01]

图1在盗币成功之后,攻击者将盗取的VETH通过Uniswap换成了16ETH。如下图所示:

韩国央行将于8月启动为期10个月的CBDC研究项目实验:韩国央行12日公告,CBDC模拟研究项目投标申请截止,共有3家公司提交申请,分别是Ground X、Line Plus和SK Holding。韩国央行将通过对这些公司的技术评??估来选择一个经营者,然后在下个月开始研究CBDC项目。模拟分为两个阶段,第一阶段的重点是创建进行模拟的环境和检查CBDC的基本功能。第二阶段主要解决使用CBDC的扩展功能和隐私问题。该研究项目的预算为49.6亿韩元(约430万美元),从启动之日起项目周期为10个月,实验将持续到明年6月。(韩联社)[2021/7/12 0:45:07]

图2具体攻击流程如下:攻击者创建攻击合约,通过Uniswap将0.9ETH兑换成138VETH;调用VETH合约changeExcluded函数,支付128VETH手续费,使mapAddress_Excluded的值为true;调用transferFrom函数,因mapAddress_Excluded的值为true,可以直接进行转账;攻击完成后,攻击者通过Uniswap将盗取的VETH兑换成16ETH。漏洞原理分析

聚币Jubi已于3月30日14:00新上线支持10个杠杆ETF代币:据官方消息,聚币Jubi已于2021年3月30日14:00(UTC+8)新支持以下杠杆ETF交易对: CELR3L/USDT、CELR3S/USDT、KSM3L/USDT、KSM3S/USDT、ONE3L/USDT、ONE3S/USDT、SOL3L/USDT、SOL3S/USDT、WAVES3L/USDT、WAVES3S/USDT。 聚币Jubi杠杆ETF区已上线支持120个杠杆ETF代币,支持BTC、ETH、DOT、DOGE、1INCH等主流及热门资产3倍做多、3倍做空。

聚币Jubi将在满足用户需求的同时,为用户提供专业、稳定、高效的数字资产及衍生品交易服务。[2021/3/30 19:29:21]

此漏洞产生的主要原因是changeExcluded函数修饰符为external,使得任何人都可以调用该函数来绕过transferFrom函数内部的授权转账额度检查,将合约的VETH代币盗走。首先分析transferFrom函数,在函数内部先进行!mapAddress_Excluded的判断,按照正常逻辑,该结果为true后,将进行授权转账额度的检查。但是转账函数_transfer的调用放在if语句体外,这就导致攻击者可以通过将mapAddress_Excluded的值设置为true而绕过授权转账额度的检查,直接进行VETH代币转移。transferFrom函数源码如下图所示:

动态 | Sologenic发布赏金计划以为Ripple网络添加10个XRP验证器:Sologenic公司发布赏金计划,目标是为 10个合格的业务开发人员提供必要的资金,以在Ripple网络上设置验证器。(The Merkle )[2020/2/13]

图3通过分析修改mapAddress_Excluded值的代码发现,在changeExcluded函数内实现了对其值的修改,且该函数修饰符为external,可供外部调用。changeExcluded函数源码如下图所示:

图4在未对该值进行设置时,mapAddress_Excluded的初始值为false,最后if判断结果为true,进入if语句体,调用_transfer进行转账,要求支付转账金额为:mapEra_Emission/16即128VETH,然后mapAddress_Excluded的值被设置为true。emission的值如下如所示:

图5至此,再配合上面的transferFrom函数,攻击者便可实现仅花费128VETH而将被攻击合约的VETH代币全部转移出去。总结

此次VETH被盗事件,漏洞出自VETH合约而非Uniswap,VETH合约代码的函数访问修饰符的错误使用导致任何人都能绕过授权转账额度的检查,以极低的成本发起攻击。成都链安-安全研究团队在此提醒各大智能合约运营商,在合约正式部署上线前应做好充分的代码审计工作,即使是一些简单的代码错误也会财产损失。

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

区块博客

[0:15ms0-3:449ms