web3: Across披露Solana中继器遭攻击,损失约450万美元

web3: Across披露Solana中继器遭攻击,损失约450万美元

摘要

Across 运营方 Risk Labs 称,Solana 中继器因链下事件校验缺失遭攻击,损失约 450 万美元,用户资金未受影响 。

Across 相关运营方 Risk Labs 披露,7 月 17 日发生的 Solana 中继器攻击并未影响用户资金,但其自有中继资本被转出约 450 万美元。事件暴露出一个典型问题:链上合约本身没有被攻破,漏洞出现在读取链上事件的链下软件。

攻击发生在链下事件解析

根据披露,攻击者利用的是 Risk Labs 运行的 Solana 中继器代码缺少一项 8 字节校验。该中继器会读取 Solana SpokePool 合约事件,并据此在目标链先行垫资完成跨链转账。

问题在于,相关组件没有验证 Anchor 事件的 8 字节 discriminator。攻击者因此伪造出看似真实的存款事件,让中继器误以为用户已在 Solana 发起跨链存款,随后错误放款。

Risk Labs 表示,被利用的 get_unsafe_deposit_id 只是一个只读辅助函数,本身不是漏洞根源,真正的问题在于中继器自身的事件识别逻辑。

1 小时内伪造 1627 笔存款

披露显示,攻击发生在 7 月 17 日 05:07 至 06:14 UTC 之间。攻击者通过 1627 个一次性钱包,向 18 条目标链提交了 1627 笔伪造存款,请求面值合计约 4170 万美元。

在团队关闭 Solana 作为源链之前,Risk Labs 的中继器共执行了其中 581 笔请求,实际支付约 450 万美元自有资金。其余约 3700 万美元的伪造请求随后失效,未再形成损失。

  • 伪造存款总数为 1627 笔
  • 涉及 18 条目标链
  • 已执行欺诈请求 581 笔

用户资金未受影响

Across 表示,整个过程中没有用户资金丢失,也没有用户资金处于风险之中。原因在于其采用的是 intents 模式:用户资产先存入源链托管合约,由独立中继器先行垫资完成目标链转账,之后再由协议结算并核验。

这意味着,伪造存款并没有触碰用户托管资产。所有真实用户转账要么在当天完成,要么在当天退款。Risk Labs 还称,Solana 程序和 EVM 合约均按预期运行,没有发生智能合约层面的入侵。

目前损失由 Risk Labs 自行承担。公司称,中继器总支出约 450 万美元,其中约 50 万美元攻击者资金仍滞留在协议内,因此净损失低于 400 万美元,后续追回后还可能继续下降。

约 12 小时恢复 Solana 服务

Risk Labs 在发现异常后暂停了 Solana 相关服务,并在当天完成修复部署。按披露时间线,团队先在 API 层禁用 Solana 的转入和转出,随后暂停 Solana SpokePool,并在数小时内合并并上线根因修复。

当日 17:05 UTC,Solana 存款通过 CCTP 备用路由重新开放。Risk Labs 表示,完整服务大约在 12 小时内恢复,其他链和协议功能未受影响。

接下来,Solana 订单流将暂时仅通过 CCTP 备用路径处理,团队会重新审计 Solana 链下事件解析逻辑,并加强异常检测,以便更早识别这类批量伪造存款行为。

补充信息:Risk Labs 表示,已与 SEAL 911 及美国执法部门合作追踪资金,攻击者地址也已在交易所和出金通道被标记。