NomadBridge漏洞利用事件分析,1.9亿美元被盗。NomadBridge是一个区块链加密货币跨链平台,支持Ethereum、Moonbeam、Avalanche、Evmos、Milkomeda的跨链资产转移。2022年8月1日,Nomadbridge遭遇漏洞利用,造成价值1.9亿美元的资产损失。该漏洞是由于在初始化期间将“committedRoot”设置为0造成的。因此,攻击者可以绕过消息验证过程,窃取跨链合约的代币。NomadBridge简介NomadBridge是一种区块链加密货币跨链协议,允许用户在不同区块链之间转移资产。此外,资产发行方还可以跨链部署代币,开发者也可以通过Nomad构建原生跨链应用。Nomad的目标是使用户和开发人员能够安全地进行交互。Nomad支持Avalanche(AVAX)、以太坊(ETH)、Evmos(EVMOS)、MilkomedaC1和Moonbeam(GLMR)之间的代币资产转移。漏洞利用事件分析8月1日,Nomadbridge在升级过程中遭遇漏洞利用。该漏洞是由于在初始化过程中将“committedRoot”设置为0造成的。攻击者可以绕过消息验证过程,滥用复制/粘贴交易来发起攻击。具体来说,用户复制了原始黑客交易的calldata,并替换为个人的原始地址。然后处理交易并将资金从Nomad桥中移除。在4小时内,黑客、机器人和其他社区成员再次发起攻击,成功窃取了Nomadbridge的几乎所有资金,总计约1.9亿美元。漏洞利用交易攻击示例:以太坊收到100WBTC转账0xa5fe9https://etherscan.io/tx/0xa5fe9d044e4f3e5aa5bc4c0709333cd2190cba0f4e7f16bcf73f49f83e4a5460多笔攻击交易:攻击流程以表交易0xa5fe9为例:攻击者调用函数root,messages[_messageHash]),用于检查root是否提交,是否超时。在此示例中,messages[_messageHash]为0x000。函数acceptableRoot(messages[_messageHash])返回true并且消息被认证。它在初始化时设置为0x0000,所以它是真的(这也是部署错误的地方)。消息通过认证后,攻击者可以将资金转移到其他链。在漏洞初始化阶段,Replica合约在事务0x53fd9中被错误初始化,其中“committedRoot”被初始化为0。实现认证绕过。合约地址:0x88a69该函数负责确保消息哈希通过检查得到证明。此功能检查根是否经过认证、处理和验证。在初始化交易0x53fd9中,所有者发送0,这些根将被设置为1。因此,0将在0xb9233处被检查。根据证明函数的实现,未证明消息的根也为0,因此0将被认为是有效的已确认根,可以绕过检查。攻击者只需要将交易发送给NomadBridge,就可以获得相应的token。根据AssetTracking的数据,大约价值1.9亿美元的代币已从NomadBridge转移出去。
