Foresight News 消息,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。
