Nomad Bridge漏洞利用事件分析,被窃取1.9亿美元。
Nomad Bridge是一个区块链加密货币跨链平台,支持以太坊、Moonbeam、Avalanche、Evmos和Milkomeda等币种的跨链资产转移。2022年8月1日,Nomad bridge经历漏洞利用,引发价值1.9亿美元资产损失。该漏洞是初始化过程中,“committedRoot”被设置为0引发的。因此,攻击者可以绕过消息验证过程,并从跨链合约中窃取token。
Nomad Bridge简介
Nomad Bridge是一个区块链加密货币跨链协议,允许用户在不同区块链之间实现资产的转移。此外,资产发行者还可以跨链部署token,开发者还可以通过Nomad构建原生跨链应用。Nomad的目标是使用户和开发者能够安全地交互。Nomad支持Avalanche (AVAX)、Ethereum (ETH)、Evmos (EVMOS)、Milkomeda C1和Moonbeam (GLMR)之间的token资产转移。
漏洞利用事件分析
8月1日,Nomad bridge在升级过程中遭遇了漏洞利用。漏洞是初始化过程中,“committedRoot”被设置为0引发的,攻击者可以绕过消息验证过程,滥用copy/paste交易发起攻击。具体来说,用户通过复制原始黑客交易的calldata,并替换为个人的原始地址。然后该交易会被处理,并从Nomad bridge移除资金。在4个小时时间内,黑客、僵尸主机和其他社区成员不断重复该攻击,并成功窃取Nomad bridge几乎所有资金,总计约1.9亿美元。
漏洞利用交易
攻击示例:
以太坊接收100 WBTC转账0xa5fe9
https://etherscan.io/tx/0xa5fe9d044e4f3e5aa5bc4c0709333cd2190cba0f4e7f16bcf73f49f83e4a5460
多个攻击交易:
攻击流
以交易0xa5fe9为例:
攻击者调用函数;
在process函数中,会调用acceptableRoot(messages[_messageHash]),这是用来检查root是否提交,以及timeout是否过期的。本例中messages[_messageHash]是0x000。
函数acceptableRoot(messages[_messageHash])返回true,消息就被证明了。在初始化时设置为0x0000,因此是true(这也是部署时的错误所在)。
消息经过证明后,攻击者就可以向其他链转账。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理