Cobo安全团队:跨链桥协议Stargate重大安全漏洞分析

日前Stargate跨链桥的底层协议LayerZero更新了默认的交易验证合约,经Cobo区块链安全团队分析,此次更新修复了之前版本中存在的严重漏洞,该漏洞可能导致所有依托LayerZero构建的跨链项目的资产受到影响。

StargateFinance是近日最受人瞩目的跨链桥项目,截至发文时TVL已超过35亿美金。

Stargate跨链桥底层基于LayerZero实现跨链消息传递。LayerZero完成跨链消息传递的基本原理是:

Oracle会将源链上的blockhash和blockreceiptsRoot提交到目标链上

Cobo资管业务升级?将推出DeFi基金:据官方消息,加密货币托管平台 Cobo 举办主题为”全球市场机遇与如何把握加密货币新机会”的内部分享,Cobo 联合创始人神鱼,Cobo 资管 VP Alex 左、Cobo 市场 VP 于菲墨等参与并发表观点。 在分享中,Cobo 宣布资管业务全面升级,推出全球”Cobo Key Person 节点人”计划,并计划推出 DeFi 基金,产品设有 3 种不同阶梯。?Cobo资管业务全面升级,将推出 DeFi 基金,目前已面向海外高净值和机构预售。[2021/8/24 22:34:48]

Relayer会将源链上跨链消息所在交易的receipt以及该receipt与blockreceiptsRoot的路径关係提交到目标链上,此时目标链上的交易验证合约会基于EthereumMPT的依赖关係,对Relayer所提交的receipt和Oracle所提交的receiptsRoot的对应关係进行验证

Cobra:所有多签名解决方案都是不必要的:9月6日晚间,Bitcoin.org网站共同所有者Cobra发推称,所有用以解决比特币存储安全问题的多签名解决方案都是不必要的复杂。因为对很多人来说,最好也是最安全的解决办法就是,把他们的12个助记词写下来,放在别人看不到的地方,比如夹在书的中间。[2020/9/7]

如果验证通过,该receipt被认为是合法的receipt,并向上层协议转发,触发后续的跨链资产操作

LayerZero3月28日在未发表任何公告的情况下更新了跨链使用的验证合约。Cobo安全团队通过对比原始验证合约和新验证合约代码,发现本次更新是对之前重大安全漏洞的修复。

Cobo宣布成为TROY Staking节点:今日,加密资产钱包Cobo宣布与加密资产主经纪商TROY建立战略合作伙伴关系,并成为TROY的Staking计划的主要节点之一,将全面支持TROY的充提及Staking服务。

TROY作为加密数字领域的主经纪商(Prime Broker),致力于打造开放式的全球交易和清结算网络协议,并通过主经纪商系统向数字资产和加密货币的客户提供交易产品及经纪服务。

Cobo致力于打造一站式数字资产存储和管理平台,业务包括支持Staking的数字资产钱包—Cobo钱包、面向机构的钱包开发及数字资产托管解决方案—Cobo托管、安全硬件数字钱包—Cobo金库。[2020/3/5]

补丁核心代码如下:

动态 | MovieBloc收购韩国区块链社区Cobak 并将和Block72达成合作:据官方消息,MovieBloc宣布收购韩国区块链社区Cobak。Cobak是韩国数字货币社区,拥有领先的移动服务及韩国大量的用户和钱包。

?

为使Cobak成为透明、活跃的加密社区,将Cobak服务扩展到全球加密社区,为促进KYC合规方面做出贡献,并在服务中大规模应用加密货币,收购Cobak后,MovieBloc将与跨国区块链咨询公司Block72建立合作伙伴关系。Block72 的合伙人Sinhae Lee将出任MovieBloc外部董事。Block72自己的项目 STP将会积极向Cobak引入其合作伙伴项目及投资组合,并且只会将优质的项目提供给其支持者 。[2020/2/18]

原始漏洞代码在进行MPT验证时,通过外部传入的pointer来获取下一层计算所用到的hashRoot。这裡使用solidity底层add,mload等汇编指令从proofBytes中获取hashRoot,由于没有限制pointer在proofBytes长度内,因此攻击者可以通过传入越界的pointer,使合约读取到proofBytes以外的数据作为下一层的hashRoot。这样就存在伪造hashRoot的可能,进一步导致伪造的交易receipt可以通过MPT验证。最终可造成的后果是,在Oracle完全可信的前提下,Relayer仍可以单方面通过伪造receipt数据的方式来实现对跨链协议的攻击,打破了LayerZero之前的安全假设。

目前LayerZero协议的Oracle是一个类似多签的合约,三位admin中的两位提交相同的数据后,会被认为数据是有效的。但是Relayer是单签EOA控制,任何一个Relayer都可以提交攻击数据,完成所有的攻击流程。

补丁后的代码使用传入的path并使用safeGetItemByIndex函数获取MPT下一层的hashRoot,保证了hashRoot存在于当前的proofBytes中,从而可以使MPT验证正确的进行下去。

此次爆出漏洞的代码是LayerZero协议中最核心的MPT交易验证部分的代码,是整个LayerZero及上层协议正常运作的基石。虽然LayerZero项目方已经修复了目前明显的漏洞,但是不排除还存在其他被攻击漏洞的可能性。此外,LayerZero项目的关键合约目前大都还被EOA控制,没有採用多签机制或者时间锁机制。如果这些特权EOA的私钥一旦泄漏,也可能会导致所有上层协议的资产受到影响。

在此,Cobo区块链安全团队提醒投资者注意新项目的风险,同时呼吁LayerZero项目方在对合约代码进行深度审计的同时,也尽快将目前EOA控制的特权转移给多籤或者时间锁合约,减少攻击风险敞口。

Reference:

https://eth.wiki/fundamentals/patricia-tree

https://etherscan.io/tx/0xf4f0495bfed37d4d95b3342ead0962433c7973f240b9b0739faa91e6ccac9d40

https://www.diffchecker.com/RJdDTCx7

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

银河链

[0:0ms0-1:609ms