2

Nomad Bridge漏洞利用被窃取1.9亿美元

 2 years ago
source link: https://netsecurity.51cto.com/article/715763.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
86ef3c699473e87c2a77265a43d5551179f552.jpg

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

Nomad Bridge漏洞利用被窃取1.9亿美元

多个攻击交易:

Nomad Bridge漏洞利用被窃取1.9亿美元

以交易0xa5fe9为例:

攻击者调用函数; 

在process函数中,会调用acceptableRoot(messages[_messageHash]),这是用来检查root是否提交,以及timeout是否过期的。本例中messages[_messageHash]是0x000。

Nomad Bridge漏洞利用被窃取1.9亿美元

函数acceptableRoot(messages[_messageHash])返回true,消息就被证明了。在初始化时设置为0x0000,因此是true(这也是部署时的错误所在)。

Nomad Bridge漏洞利用被窃取1.9亿美元

消息经过证明后,攻击者就可以向其他链转账。

初始化阶段

Replica合约在交易0x53fd9中被错误地初始化了,其中“committedRoot”被初始化为0。

因此,攻击者可以直接以任意“_message”调用“process(byte memory _message)”函数,实现验证绕过。

合约地址: 0x88a69

该函数处理确保消息哈希通过检查得到证明。

Nomad Bridge漏洞利用被窃取1.9亿美元

该函数会检查root是否经过证明、处理和确认。

Nomad Bridge漏洞利用被窃取1.9亿美元

 在初始化交易0x53fd9中,所有者发送0,这些root会被设置为1。

Nomad Bridge漏洞利用被窃取1.9亿美元
Nomad Bridge漏洞利用被窃取1.9亿美元

因此,0会在0xb9233被检查。

根据prove函数的实现,未经证明的消息的root也是0,因此0会被认为是一个有效的经过确认的root,可以绕过检查。攻击者只需发送交易给Nomad Bridge,就可以获得对应token。

Nomad Bridge漏洞利用被窃取1.9亿美元

累计有大约价值1.9亿美元的token从Nomad Bridge被转出。

 

Nomad Bridge漏洞利用被窃取1.9亿美元

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK