区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > 聚币 > 正文

metamask:慢雾深度解析 Bitfinex 天价手续费转账:BUG+显示错误「酿成大错」_ETHER

作者:

时间:

撰文:Thinking@慢雾安全团队

事件背景

分析源自一笔转账金额10wUSDT,手续费却高达7,676枚ETH的天价手续费交易。https://etherscan

将int转成Hexhttps://github

判断是否可以被2整除,如果不行需要在字符开头添加一个0,这里主要是为了能够成功的将数据2个1组写入到buffer。https://github

if(a

returna;}

以出错的示例数据:33974229950.550003进行分析,经过intToBuffer函数中的intToHex和padToEven处理后得到7e9059bbe.8ccd,这部分浏览器js和nodejs的结果都是一致的。

慢雾:过去一周Web3因安全事件损失约265万美元:7月17日消息,慢雾发推称,2023年7月10日至7月16日期间,Web3发生5起安全事件,总损失为265.5万美元,包括Arcadia Finance、Rodeo Finance、LibertiVault、Platypus、Klever。[2023/7/17 10:59:08]

不一致的地方是在newBuffer的操作:

newBuffer(padToEven(hex.slice(2)),'hex');

处理方式分析:浏览器js

通过webpack打包好js文件并对文件进行引用,然后在浏览器上进行调试分析。

首先输入的示例字符33974229950.550003会进入到intToBuffer的函数中进行处理。

慢雾创始人:网传MetaMask发生大规模被盗事件并不属实:4月18日消息,针对社区传言 MetaMask 不安全的言论,慢雾创始人余弦表示,今日 MetaMask 钱包开发人员 Taylor Monahan 的一条盗币攻击长推文(thread)在加密社区广泛传播,但实际其并未特指是 MetaMask 存在漏洞导致,唯一共同点是在 2014 年-2022 年期间创建密钥。有人没仔细看 Taylor 这个 thread,开始传播 MetaMask 不安全的谣言,煽风点火让大家弃用 MetaMask。可见大家是多么的容易恐慌,也有人在带节奏,平时养好安全习惯才是关键。[2023/4/18 14:11:29]

慢雾发布Value DeFi协议闪电贷攻击简要分析:据慢雾区消息,Value DeFi遭遇闪电贷攻击的分析如下:

1.攻击者先从Aave中借出8万个ETH;

2.攻击者使用8万个ETH在Uniswap WETH/DAI池中用闪电贷借出大量DAI和在Uniswap WETH/DAI兑换大量USDT;

3.用户调用ValueMultiVaultBank合约的deposit合约使用第2步中小部分DAI进行充值,该合约中一共有3种资产,分别是3CRV、bCRV、和cCRV。该合约在铸币时会将bCRV, cCRV转换成以3CRV进行计价,转换完成后,Value Defi合约根据总的3CRV价值和攻击者充值的DAI数量计算mVUSD铸币的数量;

4.攻击者在Curve DAI/USDC/USDT池先使用第二步中剩余的大部分DAI和USDT兑换USDC,拉高USDC/3CRV的价格;

5.攻击者发起3CRV提现,这时会先将合约中的bCRV, cCRV转换成以3CRV计价,由于USDC/3CRV价格已被拉高,导致bCRV, cCRV能换算成更多的3CRV;

6.攻击者使用3CRV换回DAI,并在Uniswap中兑换回ETH,然后归还Aave的闪电贷 。

总结:由于 Value Defi 合约在铸币过程中将合约资产转换成 3CRV 时依赖 Curve DAI/USDC/USDT 池 中 USDC/3CRV的价格,导致攻击者可以通过操控 Curve DAI/USDC/USDT 池 中 USDC/3CRV 的价格来操控 mVUSD/3CRV 的价值,从而获利。[2020/11/15 20:52:09]

同步分析intToBuffer的处理过程,这部分和」关键代码分析「部分的代码逻辑是一样的,处理转换部分得到的结果是7e9059bbe.8ccd。

动态 | 慢雾预警:攻击者利用Big Game代付CPU功能恶意挖矿EIDOS:据慢雾区伙伴情报,攻击者flyi****kite、gy2d****gqge利用Big Game今天(11月5号)刚上线发布的代付CPU功能恶意挖矿EIDOS,攻击者通过在transfer的通知中加入挖矿操作,恶意使用Big Game的CPU资源,目前Big Game账号wallet.bg的CPU已被刷爆。[2019/11/6]

接下来分析如何将转换后的字符填充进入的buffer中,通过这步可以得到buffer的内容是126,144,89,187,14,140,205对应的是7e,90,59,bb,e,8c,cd。

现场 | 慢雾海贼王:保障安全需找专业安全团队做专业审计:金色财经现场报道,在今日万向区块链实验室举办的2018区块链·新经济第四届区块链全球峰会上,慢雾安全负责人海贼王称,一笔合法交易的USDT,至少需要满足以下两个条件:(1)要通过比特币的交易来构造,要符合比特币的余额验证及交易规则验证;(2)要通过USDT自己的余额验证。他总结说,要保障安全,需找专业的安全团队做专业的审计。[2018/9/10]

>0x7e->126>0x90->144>0x59->89>0xbb->187>0xe->14>0x8c->140>0xcd->205

这里发现e.这部分的小数点消失了,于是开始解小数点消失之迷,追踪到hexWrite这个函数,这个函数会将得到的数据2个一组进行切分。然后用了parseInt对切分后的数据进行解析。

然而parseInt('e.',16)->14===parseInt('e',16)->14消失的小数点被parseInt吃掉了,导致最终写入到buffer中的数据发生了错误,写入buffer的值是7e9059bbe8ccd。

处理方式分析:nodejs

由于浏览器上出问题的是7_**__**_e9059bbe.8ccd在写入buffer的时候小数点被parseInt吃掉了导致数据出错,但是经过分析,node的数据也是错误的,且产生错误的原因是和浏览器的不一样。

首先我们先看下如下的示例:

node三组不同的数据填充到buffer得到的结果居然是一样的,经过分析node的buffer有个小特性,就是2个一组切分后的数据,如果没法正常通过hex解析的,就会把那一组数据以及之后的数据都不处理了,直接返回前面可以被正常处理的那部分数据。可以理解为被截断了。这部分可以参考node底层的buffer中node_buffer.cc中的代码逻辑。

>newBuffer('7e9059bbe','hex')>newBuffer('7e9059bbe.8ccd','hex')>newBuffer('7e9059bb','hex')

执行结果的比较

node由于会将原始数据7e9059bbe.8ccd中的e.及之后的数据进行截断,所以最终错误的值是7e9059bb,相比正确的值07e9059bbe小。

node的执行结果:

浏览器由于会将原始数据7e9059bbe.8ccd中的.吃掉,所以最终错误的值是7e9059bbe8ccd,相比正确的值07e9059bbe大很多。

浏览器的执行结果:

问题的原因

ethjs-util的intToBuffer函数不支持浮点型的数据,且在这个函数中没有判断传入的变量类型,来确保变量类型是预期内的。由于ethereumjs的toBuffer引用了ethjs-util的intToBuffer进行处理,也没有对数据进行检查。导致了这次事件的发生,所幸最终善良的矿工归还了「天价手续费7626ETH」。

吸取的教训

从第三方的库的角度来看,在编码过程中应该要遵循可靠的安全的编码规范,在函数的开头要对传入的数据进行合法性的检查,确保数据和代码逻辑是按照预期内执行。

从库的使用者的角度来看,使用者应该要自行阅读第三方库的开发文档和对接文档,并且也要对代码中接入第三方库的逻辑进行测试,通过构造大量的数据进行测试,确保业务上能够正常按照期望执行,保证高标准的测试用例的覆盖率。

参考资料:https://github.com/ethereumjs/ethereumjs-monorepo/issues/1497https://blog.deversifi.com/23-7-million-dollar-ethereum-transaction-fee-post-mortem/https://www.chainnews.com/news/611706276133.htm

标签:metamaskTOBTPSETHERMetaMask安卓安装包TOBACCOhttps://etherscan.ioMagic Ethereum Money

聚币热门资讯
区块链:光明网评论:NFT发展要低调务实 谨防炒作和捧杀_DEF

来源:光明网 作者:陈永伟,《比较》研究部主管最近一段时间,NFT成为了整个投资市场最大的焦点.

NFT:MetaMask再提示Airdrop 并依赖于用户行为实施钓鱼_MET

巴比特讯,MetaMask最新发推再次提示有关Airdrop相关的内容。ConsenSys的去中心化Web开发人员DanFinlay声称,该局涉及铸造新的恶意令牌,将其发送到用户帐户,并依.

OIN:虚拟货币挖矿拟列入产业淘汰目录,2年前曾被剔除_区块链

来源丨财联社区块链日报 文|徐赐豪 此次通知中明确区分“挖矿”与区块链、大数据、云计算等产业界限,对促进我国产业结构优化、推动节能减排、如期实现碳中和等目标具有重要意义.

REN:The Giving Block与RenPSG合作为慈善机构提供加密货币捐赠解决方案_Hero Arena

据Cointelegraph消息,9月23日,专注于加密货币捐赠行业的主要组织TheGivingBlock宣布将与慈善平台提供商RenPSG合作.

NFT:NFT周刊|TikTok发布限量版NFT,Ripple新基金专注于NFT_gearbox币的价格能到1美元吗

在过去的一周里,社交媒体平台在NFT领域有了相应的进展。TikTok和Twitter在NFT社区中都引起用户的关注,这些平台正在逐步的在将NFT引入到自己的业务当中.

以太坊:以太坊基金会研究员:将于10月14日弃用Amphora测试网,启用更稳定的新测试网_PHO

巴比特讯,10月12日,以太坊基金会研究员Protolambda发推称,Amphora测试网成功启动后,发现由于一些配置问题,Amphora测试网承受了大约3倍于主网的工作量.