ETH:惊天魔盗 近2亿美金损失——Nomad Bridge攻击事件分析

北京时间2022年8月2日,CertiK安全团队监测到NomadBridge遭受攻击,导致了价值约1.9亿美元的损失。

合约的问题在于在initialize()函数被调用的时候,“committedRoot”被设成了0x00地址。因此,攻击者可以通过消息的验证,将在桥合约中的代币转移。

攻击步骤

①攻击者调用process()函数开始攻击。

②process()函数中调用了acceptableRoot(messages),这个函数检查了被提交的root以及OptimisticTimeOut是否过期。

数据:两巨鲸昨日抛售1.67万亿枚PEPE逃顶:5月8日消息,据Spot On Chain披露数据显示,5月7日PEPE出现近30%跌幅之前,两个巨鲸总计抛售1.67万亿枚PEPE成功逃顶,价值约合555万美元。其中qianbaidu.eth抛售1.4万亿枚PEPE,获利约482万美元。0x2410开头地址抛售2748亿枚PEPE,获利约95.14万美元,该地址曾在4月26日以10.03万枚USDT购入4010亿枚PEPE,5月6日还将1262亿枚PEPE兑换200 ETH,其投资回报率高达948%。[2023/5/8 14:49:20]

③此时函数acceptableRoot(messages)返回了true,也就是说这条message就被批准了。这是因为0x0000在初始化过程中被设置为了true。

MechMind #7689以12.5万ETH的价格成交,创以ETH计价NFT最高成交价:金色财经报道,据数据显示,MechMind #7689于21日3时18分以12.5万ETH的价格在Opensea上成交,成为以ETH计价有史以来成交价最高的NFT。目前,该NFT地板价仅为0.06 ETH。

MechMinds官方回应,该购买行为是官方为宣传项目所采取的行动。此外官方还表示,该行为还得益于NFT市场的0手续费政策,且该政策还将使得清洗交易难以被检测。[2023/2/21 12:19:11]

④当这条message被批准后,攻击者即可从桥中转移资金。

Celsius总计持有100.1万枚以太坊,仅26.8万枚为具备完全流动性的ETH:6月7日消息,据推特用户yieldchad统计显示,加密借贷平台Celsius目前各DeFi钱包中总计持有100.1万枚以太坊,其中仅26.8万枚为具备完全流动性的ETH,其它44.5万枚为stETH形式,28.8万枚在参与ETH2质押,至少在一年内无法使用。[2022/6/7 4:07:44]

攻击交易

攻击示例:

○在MoonbeamBridge上转移了0.01WBTC:?https://moonscan.io/tx/0xcca9299c739a1b538150af007a34aba516b6dade1965e80198be021e3166fe4c?

○在EtheremBridge接受了100WBTC代币转移:https://etherscan.io/tx/0xa5fe9d044e4f3e5aa5bc4c0709333cd2190cba0f4e7f16bcf73f49f83e4a5460?

漏洞分析

在Replica合约中,“committedRoot”被错误地初始化为0?。

合约地址:https://etherscan.io/address/0x88a69b4e698a4b090df6cf5bd7b2d47325ad30a3

函数process通过调用函数acceptableRoot()确保messagehash能通过验证。

函数acceptableRoot()会检查root是否已经被proven,processed或者confirmed。

然而在初始化的交易中0x53fd92771d2084a9bf39a6477015ef53b7f116c79d98a21be723d06d79024cad,owner传入了0x00并且它对应的`confirmAt`也会在初始化中被设为1。

因此0x00可以被当作一个`acceptableRoot`,这也可以在replica合约中查询到https://etherscan.io/address/0xb92336759618f55bd0f8313bd843604592e27bd8。

Prove函数的实现导致了一条unprovenmessage的root是0,而0作为一个有效的confirmedroot可以通过require的检查。攻击者只需调用process函数就能从桥中转移资金。

资金去向

大约价值1.9亿美元的代币从桥合约中转移出去。

https://defillama.com/protocol/nomad?denomination=USD?

写在最后

由于该问题是由部署参数中的错误引起的,我们假设所有的部署和配置都是正确的,那么在传统的审计中确实很难发现该问题。然而,在包含验证部署过程等更广泛的审计过程中,是可以有效指出该问题的。

CertiK可提供部署阶段后的附加服务——合约验证,其中包括对智能合约的分析和部署后合约验证的深入分析。

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

瑞波币元宇宙:CEX 会是跨链桥的终点吗?

撰写:MarcoManoppo在区块链网络中移动加密资产是很困难的,但随着加密资产和区块链行业的成熟,Web3世界无疑将变得多链化,各种区块链网络针对特定需求和使用情况进行优化.

[0:0ms0-1:567ms