北京时间今日(8 月 2 日)清晨,跨链互操作性协议 Nomad 桥遭到黑客攻击,攻击发生期间 WETH 和 WBTC 以每次百万美元的速度被持续转出。据 DefiLlama 数据显示,Nomad 上近 2 亿美元的 TVL 在短时间内被攻击者「掏空」,截止发文时仅剩不到 4000 美元。
a16z crypto 应用安全团队成员 Matt Gleason 及 Paradigm 研究合伙人兼安全主管 Samczsun 在第一时间发推解释了本次攻击利用的漏洞。以下分析节选自二者的观点:
Nomad 此次被攻击是由于跨链桥的配置导致可以通过特定路径发送任何事务,错误在于 Replica 内部的「process」功能。出问题的「process」功能被设计为保证信息被证明,然后处理信息,通常情况下这个过程没有问题。
该过程会使用「acceptableRoot」用来检查 root 是否被证明或者在当前时间之前已被确认。问题存在于 Solidity 语言中,如果一个 map 的映射键未找到会返回默认值 0,则「acceptableRoot」的参数 「_root 」将会是 0。
然而,由于合约初始状态下「_confirmedRoot」为 0,使得 0 就是一个已被确认的值(注:confirmAt[0] = 1;)「acceptableRoot」接收一个 0 值就能通过验证。
结果,黑客正是利用该漏洞,找一笔有效交易反复发送构造好的交易数据抽取跨链桥被锁定的资金,从而导致 Nomad 上锁定的资金被几乎全数盗走。
受 Nomad 跨链桥被攻击的影响,Moonbeam 代币 GLMR 短时下跌近 10%,Evmos 代币 EVMOS 上涨超 150%。发生该情况或是由于 Moonbeam 暂时关闭 EVM 功能,以及 Nomad 作为 Evmos 与以太坊生态的主要跨链桥,被盗资金需要通过 EVMOS 作为出金渠道所致。
Evmos 官方发推称,目前正在与 Nomad 团队密切合作,并会在获得更多信息后更新进展,当下 Evmos 链运行正常。由于 Nomad 已暂停,因此用户无法将他们的 ERC20 封装资产从 Evmos 撤回到以太坊,团队会及时通知这对 Evmos 用户和拥有 Nomad 封装资产的用户有何影响。
(声明:请读者严格遵守所在地法律法规,本文不代表任何投资建议)