zkLink Nova 跨链桥昨晚被黑,一张伪造的批次凭证放走了约78万美元
10月28日UTC 22点21分,一笔交易从 zkLink Nova 以太坊托管合约里提走了约78万美元,北京时间今早6点21分。Blockaid 先报警,说攻击还在进行,主托管合约当时还没有暂停。慢雾拆解估算约78.31万美元。
zkLink Nova 是聚合型三层网络,最终结算到以太坊。用户从 Nova 提回以太坊,托管合约要先核对一张叫 batch root 的凭证,相当于一批交易的指纹,合约认它才放行。问题出在谁能往合约里写指纹。
慢雾的拆解指向 Arbitrator 合约里的 claimMessage 函数。它用完 finalizeMessageHash 没清掉,也没要求每次回调都新鲜认证。攻击者先用一个任何人都能调的中继合约装进合法哈希,再把目标换成以太坊网关,让同步 batch root 这一步看起来来自合法网关。身份一冒充成功,第116409批的假 root 就进了合约,他提交的提款证明全部对得上,托管合约一路放行,整件事在一笔交易里完成,区块号是26294188。
被提走的一共12种。最大头是 Puffer 的 pufETH,245.74枚约61.5万美元,占近八成。其余是22.43枚 ETH、12.57枚 ezETH、18113枚 USDC,以及少量其他代币。不到一小时,攻击者已在 Curve 换了123.26枚 ETH,随后分三笔把约303枚 ETH 转到三个地址。另一攻击地址后来又从同桥提走了约2.164亿枚 ZKL,约4.2万美元。
这事对散户的提醒不在金额。78万美元不算大,今年4月 Kelp DAO 那次是2.92亿美元。真正值得记住的是路径。公开可调的中继合约被当成授权方,一次没清干净的临时值,就让验证链条从中间断了。钱袋口认错了人,里面的资产多少都拦不住。写稿时 zkLink 还没有公开声明,没有确认是否暂停,更没有赔付方案。这时抢提款,可能是往还没关上的门里再送一次。
我的看法很直接。桥出事,先去官方账号确认暂停说明,别抢跑提款。没有暂停公告的桥,先别新存,也别急着交互。已有资产在里面的,分批比一次全提更稳,提之前先看暂停说明。
你现在还有资产锁在哪个跨链桥里,上次检查它的暂停状态和官方说明是什么时候?
#BTC #跨链桥 #安全复盘 #zkLink #DeFi安全
—— web3韭菜小凯
内容仅为公开信息整理,不构成投资建议,提到的金额以 Blockaid、慢雾及 Etherscan 公开记录为准,项目方后续说明以官方渠道为准。