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

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

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

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

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

ForceDAO已将再分配后的剩余资金转给Gitcoin团队用于公共产品支持:9月12日消息,收益聚合器ForceDAO发推表示,已在昨日将金库资金再分配后的剩余资金转给了Gitcoin团队,2.72万枚GTC和69万枚DAI将用于公共产品支持。这标志着项目的结束。2021年4月,ForceDAO合约漏洞被利用,导致代币被大量增发,随后推出新代币FORCE并公布空投补救措施。

2022年3月份,ForceDAO表示,ForceDAO在漏洞被利用后未能恢复,已经失败了,所以将正式结束ForceDAO的运营,建议用户提取所有剩余资金,同时ForceDAO金库计划将2021年夏季Gitcoin代币空投的GTC重新分发给受影响的用户和支持者,符合条件索赔人名单及其相应的金额将在未来几天内提供。[2022/9/12 13:23:43]

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

Coinbase网站和移动应用程序再次出现故障:据Coinbase Support推特消息,Coinbase的网站和移动应用程序再次出现故障。目前Coinbase已针对此问题实施了修复程序,并正在监视结果。据悉,每当比特币价格和交易量激增时,该问题就会再次发生,这似乎困扰着Coinbase。(CoinDesk)[2020/11/26 22:15:49]

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

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

前谷歌高级法律总监Milana McCullagh担任Coinbase产品和商业法律副总顾问:Coinbase周五宣布任命前谷歌高级法律总监Milana McCullagh为产品和商业法律副总顾问。McCullagh在谷歌工作了13年多,他将在Coinbase跨职能部门提供产品法律支持,帮助公司简化新产品发布的法律合规性。(Cointelegraph)[2020/11/1 11:21:04]

补丁核心代码如下:

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

声音 | 眼镜蛇Cobra:吴忌寒推特已经很久没有更新:眼镜蛇Cobra发布推特称,吴忌寒推特已经很久没有更新了。并称自己是吴忌寒在推特上“突然消失”之前最后回复的一个人。Cobra坦言非常担心吴忌寒,称可以想象吴忌寒目前所面临的压力,并期望他一切都好。经过核实,吴忌寒在2018年12月17日转发Aleksandar Kuzmanovic的一条推特后,其推特状态一直显示未更新。而如眼镜蛇Cobra所言,他的确是吴忌寒目前在推特上回复的最后一个人。[2019/1/21]

目前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:15ms0-3:582ms