北京时间2022年8月2日,CertiK安全团队监测到NomadBridge遭受攻击,导致了价值约1.9亿美元的损失。
合约的问题在于在initialize()函数被调用的时候,“committedRoot”被设成了0x00地址。因此,攻击者可以通过消息的验证,将在桥合约中的代币转移。
攻击步骤
①攻击者调用process()函数开始攻击。
②process()函数中调用了acceptableRoot(messages),这个函数检查了被提交的root以及OptimisticTimeOut是否过期。
DCG发布Genesis调解声明:各方已签订 30 天调解期:5月9日消息,Digital Currency Group(DCG)发布 Genesis 调解声明称,根据各方于 5 月 1 日签订的 30 天调解期,DCG 继续与 Genesis Capital 重组过程中的各利益相关方进行接触。为了提供进一步的财务灵活性,DCG 正在与资本提供者讨论发展资本(growth capital),并为其与 Genesis 的未偿公司间债务再融资(refinance)。[2023/5/9 14:52:36]
③此时函数acceptableRoot(messages)返回了true,也就是说这条message就被批准了。这是因为0x0000在初始化过程中被设置为了true。
Web3慈善项目为贫困儿童筹集了5万美元:金色财经报道,由Emonee LaRussa和她在JumpStart Designers的团队创建的一个Web3慈善项目已经为贫困儿童筹集了令人印象深刻的50,000美元。这个非凡的项目由MoonPay提供支持,并以全球一些最著名的NFT艺术家的作品为特色。Bobby Hundreds、Coldie、Fvckrender、Drifter等艺术家都参与其中。(nftevening)[2022/11/20 22:08:32]
金色晨讯 | 11月10日隔夜重要动态一览:21:00-7:00关键词:放弃收购FTX、Genesis、ArkInvest
1. Alameda从FTX.US交易所提取3700万美元的wBTC;
2. 知情人士:如没有新资金注入,FTX将申请破产;
3. Binance:根据尽职调查结果决定放弃收购FTX;
4. 支付平台Ping筹得1500万美元种子轮融资;
5. 报告:Genesis在对冲市场波动中损失约700万美元;
6. 数据:币安现货交易量占交易市场的71%;
7. 过去24小时Coinbase比特币流出量超过4万枚;
8. 美国调查FTX有关处理客户资金和贷款的问题;
9. ArkInvest购买2100万美元的Coinbase股票,抛售990万美元Robinhood股票。[2022/11/10 12:40:55]
④当这条message被批准后,攻击者即可从桥中转移资金。
跨链智能钱包Blocto为Aptos生态推出300万美元生态基金:11月3日消息,跨链智能钱包Blocto宣布推出 300 万美元的 Aptos 生态系统基金,以帮助项目吸引新用户。Blocto联合创始人兼首席执行官Hsuan Lee 表示,我们一直在寻找具有长期潜力的有前途的区块链生态系统,Aptos引起了我们的注意。据悉,除资金支持外,Blocto还将为选定的项目提供运营支持,包括接触Blocto的投资者团队、金融营销团队及其开发商。[2022/11/3 12:14:17]
攻击交易
攻击示例:
○在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可提供部署阶段后的附加服务——合约验证,其中包括对智能合约的分析和部署后合约验证的深入分析。
前言北京时间2022年6月13日,知道创宇区块链安全实验室监测到BSC链上的FSwap去中心化交易所项目遭到闪电贷攻击,导致损失1751枚BNB约39万美元.
1900/1/1 0:00:00据最新消息,JustLend总质押价值为3,374,931,949美元,突破33亿美元,目前在波场TRON项目中位列第一。 此外,JustLend平台成交量也迎来大幅增长.
1900/1/1 0:00:00过去一周,波场TRON各项目进展顺利,并取得了丰硕成果。 1、据官方消息,数字支付平台Wirex已支持TRX。2、据官方消息,金融服务公司Mercuryo已支持TRC20-USDC.
1900/1/1 0:00:00据官方消息,6月17日,波场联合储备在波场网络上增加了3亿枚USDC供应,USDC在波场链上的流通量现已超28.8亿枚,创下新里程碑.
1900/1/1 0:00:00Tether可能持有他们储备的地方继Luna开发的UST稳定币发生崩盘后,全世界的交易员和投资者都担心他们的资金在Tether等稳定币解决方案中的安全性,该稳定币受到了重大打击.
1900/1/1 0:00:00数字不会说谎。加密市场从2013年的17亿增加到今天的1.02万亿,经历了巨幅的成长,这在任何其他资产类别中所无法想像的。这些年来,越来越多的人一直在寻找最热门、最新的资产类别.
1900/1/1 0:00:00