ETH:详解VETH智能合约被攻击事件

2020年6月30日下午5:46,Beosin-OSINT威胁情报系统发现

VETH智能合约

遭受攻击,被盗919299个VETH。成都链安·安全实验室第一时间对本次事件进行跟踪分析。

?

根据链上交易显示:

攻击者利用自建合约

通过Uniswap将0.9ETH兑换为138VETH,之后对VETH智能合约

发起攻击,在攻击完成后自建合约进行自我销毁。

本次攻击成本仅0.9ETH,约合200美元。交易

详情如下:

Wintermute创始人:不会投资三箭资本和CoinFlex拟议的新交易所:1月17日消息,加密货币做市商Wintermute创始人Evgeny Gaevoy发推文称:“由于我们正在讨论取消这些东西,如果你正在投资CoinFlex和三箭资本的‘交易所’,你可能会发现在未来与Wintermute合作(在关系建立方面)会有点困难。类似地,我们不会参与风险投资,因为这些人即将进入资本上限表,所以创始人要小心。”

金色财经此前报道,三箭资本创始人计划筹集2500万美元,与CoinFlex合作启动新加密货币交易所,旨在开始提供加密货币破产索赔交易,尽管三箭资本透露新加密货币交易所名为“GTX”,但CoinFlex称,不会使用GTX作为名称,GTX只是一个占位符名称。[2023/1/17 11:15:47]

△图1

报告:东非不太可能在2024年推出单一货币:金色财经报道,来自非洲经济联盟东非共同体(EAC)的中央银行不确定在2024年之前为该地区引入单一货币的计划是否会实现。这些央行指出,一些成员国未能实现路线图中设定的目标,是单一货币不太可能按计划起飞的原因之一。

根据东非的一份报告,东非共同体六国成员希望设想中的共同货币将有助于减少兑换货币的费用。人们还希望单一货币将消除跨境贸易带来的汇率波动。实现单一货币是EAC在2022年至2026年期间的优先事项之一。

与此同时,据报道,在8月22日发布的一份公报中,EAC证实,拖延和其他挑战意味着该地区集团无法按计划在2024年之前拥有单一货币。(news.bitcoin)[2022/8/25 12:48:18]

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

Vitalik Buterin批评比特币S2F模型给人带来错误的确定感:6月21日消息,以太坊创始人Vitalik Buterin在推特上批评比特币S2F模型(Stock-to-flow)给人带来一种错误的确定感,预定的数字会给人增加有害的感觉,盲从者应该受到嘲笑。PlanB回应了Vitalik的批评,称“人们正在为他们失败的项目或错误的投资寻找替罪羊。”

据悉,荷兰匿名机构投资者PlanB一直在推广比特币S2F模型,该模型因成功预测了几次比特币价格而获得大量关注。许多批评者指出的S2F模型的关键问题是片面估计,它只考虑BTC的供应方,而没有假设需求将继续增长。(Cointelegraph)[2022/6/21 4:43:16]

质押平台Kiln完成500万美元融资,SV Angel等参投:5月20日消息,企业级质押平台Kiln宣布完成500万美元融资,Third Kind管理合伙人和Andreessen Horowitz(a16z)董事会合伙人Shana Fisher、SV Angel、Blue Yard、Alven、Kima Ventures等参投。

Kiln将利用这些资金引进新人才,提升其技术并构建其服务,从而使金融科技公司、加密公司和金融机构能够向其客户提供加密资产一键式质押服务,或者直接在Kiln上质押其加密资产。目前Kiln支持以太坊、Solana、Tezos、NEAR、Terra和Cosmos质押,未来计划支持更多区块链。(Cryptoninjas)[2022/5/20 3:29:49]

△图2

?具体攻击流程如下:

1.攻击者创建攻击合约,通过Uniswap将0.9ETH兑换成138VETH;

2.调用VETH合约changeExcluded函数,支付128VETH手续费,使mapAddress_Excluded的值为true;

3.调用transferFrom函数,因mapAddress_Excluded的值为true,可以直接进行转账;

4.攻击完成后,攻击者通过Uniswap将盗取的VETH兑换成16ETH。

漏洞原理分析

此漏洞产生的主要原因是changeExcluded函数修饰符为external,使得任何人都可以调用该函数来绕过transferFrom函数内部的授权转账额度检查,将合约的VETH代币盗走。

首先分析transferFrom函数,在函数内部先进行!mapAddress_Excluded的判断,按照正常逻辑,该结果为true后,将进行授权转账额度的检查。但是转账函数_transfer的调用放在if语句体外,这就导致攻击者可以通过将mapAddress_Excluded的值设置为true而绕过授权转账额度的检查,直接进行VETH代币转移。transferFrom函数源码如下图所示:

△图3

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

△图4

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

△图5

总结

此次VETH被盗事件,漏洞出自VETH合约而非Uniswap,VETH合约代码的函数访问修饰符的错误使用导致任何人都能绕过授权转账额度的检查,以极低的成本发起攻击。

成都链安·安全实验室在此提醒:各大智能合约运营商,在合约正式部署上线前应做好充分的代码审计工作,即使是一些简单的代码错误也会财产损失。

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

金星链

[0:0ms0-1:283ms