CertiK解析Verus跨链桥惊天大攻击:攻击者如何利用跨链语义差异伪造状态根

CertiK 发布了一份关于 7 月 23 日 Verus 协议以太坊跨链桥攻击事件的分析报告。报告显示,此次攻击的根本原因是 Verus 和以太坊对公证数据(notarization)解读方式存在差异。攻击者在合法的公证交易中混入了多笔恶意的重复状态根(state root)条目,这些数据经过 11 个 Verus 公证节点的正常签名后被中继到以太坊。由于 Verus 端将序列化的状态根数据读入并插入映射表处理,而以太坊端在反序列化时则按顺序遍历所有 proofRoots 条目,对每个匹配系统 ID 的条目都执行状态根覆写,导致后续提交的恶意状态根条目覆盖了最初合法的状态根。攻击者操控的状态根最终被以太坊当作可信检查点接受。在此基础上,攻击者在 Verus 链上仅通过 Bridge.vETH 发起了一笔 0.01 VRSC 的极小额跨链导出请求,随后在以太坊端调用 submitImports() 函数时,伪造了导入证明中的 hashtransfers(转账哈希)等关键字段,使其与实际被转移资产的哈希相匹配,其余证明字段则复用了此前合法交易中的部分数据构造而成。CertiK 指出,Verus 以太坊跨链桥合约存在逻辑漏洞,未校验导入请求中指定的支付金额是否与 Verus 网络上实际导出金额相符,导致伪造证明得以通过验证,最终授权了远超实际转出额度的提现。攻击成功后,攻击者通过 Relay 将被盗资产兑换为 2778.8662 枚 ETH,并转入 Tornado Cash。

Facebook
Twitter
LinkedIn
Telegram

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注