Decentralised Finance又出幺蛾子了?Ethereum智能钱包应用Authereum被曝致命漏洞

时间:2021-08-21 11:18来源:www.jinbaobeimy.com作者:辉哥点击:

导读:
扫描关注公众号

1

日前,获取Coinbase Ventures等机构资金投入的Ethereum智能钱包应用Authereum收到了来自samczsun的漏洞披露,该漏洞借助了帐户合约元买卖功能的操作顺序,并允许攻击者控制钱包帐户。在收到反馈之后,Authereum团队飞速化解了该漏洞,规避使用者金钱遭受损失。据悉,为清楚决这一毛病,Authereum借助漏洞强制将使用者账户升级至修复达成,然后将控制权交还给了使用者。 以下属于这次漏洞的披露细则,作者属于专业白帽samczsun,曾披露过0x等项目标紧急漏洞。

4

完整的攻击方式能够在这里找到:https://gist.github.com/samczsun/bbb53e50900e53b659bb2fe16ce51a1e 影响 image

幸运的属于,Authereum刚才推出,实质还没有有哪些金钱可偷的。 解决方法 Authereum团队将签名检查重新定位到实行买卖前段时间。 function executeMultipleAuthKeyMetaTransactions( bytes[] memory _transactions, uint256 _gasPrice, uint256 _gasOverhead, address _feeTokenAddress, uint256 _feeTokenRate, bytes memory _transactionMessageHashSignature ) public returns (bytes[] memory) { uint256 _startGas = gasleft();

// Hash the parameters bytes32 _transactionMessageHash = keccak256(abi.encode( address(this), msg.sig, getChainId(), nonce, _transactions, _gasPrice, _gasOverhead, _feeTokenAddress, _feeTokenRate )).toEthSignedMessageHash();

// Validate the signer // NOTE: This must be done prior to the _atomicExecuteMultipleMetaTransactions() call for security purposes _validateAuthKeyMetaTransactionSigs( _transactionMessageHash, _transactionMessageHashSignature );

(, bytes[] memory _returnValues) = _atomicExecuteMultipleMetaTransactions( _transactions, _gasPrice, _gasOverhead, _feeTokenAddress, _feeTokenRate );

if (_shouldRefund(_transactions)) { _issueRefund(_startGas, _gasPrice, _gasOverhead, _feeTokenAddress, _feeTokenRate); }

return _returnValues; } 进一步阅读: Parity钱包属于怎样失窃的; Authereum团队的披露;

每一个智能钱包均由一组管理密钥(admin key)具备,并且当使用者在Authereum上创建帐户时会生成首先个管理密钥。自然,管理密钥能够添加新的管理密钥。

Authereum钱包还允许中继者(relayer)提交买卖,因此最后使用者无需担忧支付gas成本。为了确保中继者没办法通过做坏事导致破坏,Authereum钱包会验证中继的买卖是不是已由管理密钥签名。 怎样中继一笔买卖 让小编看一下中继者(relayer)怎么用Authereum元买卖来中继一笔ERC20批准买卖。

6

哎呀哎呀哎呀呀呀呀呀呀:

事实上,要是小编考虑考虑,钱包代表着管理者。只到底有管理者能够授权要发送的买卖。这意味着,要是钱包属于调用者(caller),那样管理者必须已授权钱包进行自我个人调用,对吗?因此,或许小编能够将钱包视为某种伪管理者,让它实行一些可怕的特权之事。

4

Source

向中继者供应一切必需的信息后,对方将提交一笔买卖到函数executeMultipleAuthKeyMetaTransactions,该函数如下所示:

3

Source

此时,Authereum钱包将自动实行一切买卖,验证买卖是不是已通过管理密钥签名,然后在必要时退款。

留意到存在毛病的位置了吗? 元买卖存在的毛病 要是管理者能够选用元买卖来中继某些买卖,那要是其能够选用元买卖中继一切买卖绝对是很不错的。但是属于,确保管理者发送一笔买卖的唯一靠谱手段,就在于检查msg.sender,而这在一笔元买卖中属于不起作用的。

5

Source

期望无人会用这一版本的钱包去调用一个随机函数,由于如此做确实会非常的糟。

长话短说:

Authereum钱包包含了一个漏洞,而攻击者能够借助它来随时接管任何钱包。Authereum团队借助此漏洞来强制对一切的使用者钱包进行了升级,因此不存在丢失金钱。 关于Authereum Authereum属于一个旨在选用户更轻松选用EthereumdApp的项目。为了达成这一目的,对方建立了一套智能合约,以充当智能钱包。

 

最终,使用者供应一个管理密钥签名。具体来讲,它属于以下数据的签名。

2

哎呀哎呀哎呀:

下面,使用者指定对方期望发送此买卖的最低gas车主报价,与估算的gas成本。使用者还指定对方是不是要用Ether之外的代币付款,与Ether转换成有关代币的费率。

哎呀:

第一,使用者供应编码买卖。这包括目的合约,要发送的Ether量,gas限额与买卖数据。对于一笔ERC20批准买卖,说不定看上去类似于属于如此的:

相关文章
推荐文章

热门标签

ETH 智能合约 Authe

区块链赚钱是骗人的吗?_说一说的我亲身经历感受_雄安网

Copyright © 2002-2021 雄安网 (http://zhengdepeixun.com) 网站地图 TAG标签 备案号:

声明: 本站文章均来自互联网,不代表本站观点 如有异议 请与本站联系 本站为非赢利性网站