在10月24日至26日期间,一名攻击者利用 Polkadot 资产枢纽(Asset Hub)中 XCM 执行器的已知漏洞,通过操纵 dotUSD 的已记录发行量,在不改变账户余额的前提下,人为压低其供应数据,从而引发交易池定价失真。
该漏洞的核心在于,尽管 XCM 程序设计具备失败回滚机制,但在特定条件下,供应量的变更未能被撤销,导致数据持续错误。由于 dotUSD 是去中心化交易所中唯一的流动性提供资产,系统依据较低的“报告供应量”来计算可用额度,一旦供应量被低估,便形成套利空间,使 dotUSD 可以以远低于实际价值的汇率兑换为 DOT。
尽管 dotUSD 始终维持全额支持,但低估的供应量限制了正常赎回流程,直到问题被纠正才得以恢复。攻击消息经由 Snowbridge 从以太坊传入,但根本原因并非桥接协议本身,而是 XCM 执行器的逻辑缺陷。
该漏洞于今年6月通过 Parity 漏洞赏金计划被披露,并被归类为中等严重性,修复代码随后被合并进开发分支。然而,由于未赶上 stable-2606 版本发布节点,修复被推迟至 stable-2609 版本,期间未进入正式运行环境。
10月20日,有研究人员在公共论坛提及修复方案,违反了赏金计划保密条款,可能为攻击者提供了关键线索。尽管如此,该行为并未直接导致漏洞被利用,但加剧了风险暴露。
包含修复程序的 Runtime 2.5.1 于10月24日通过 OpenGov 提议,当时 Snowfork 暂停中继器,短暂阻止了攻击。但攻击者在10月26日启用自建中继器重启攻击,距离升级仅剩约六小时。最终,Runtime 2.5.2 于10月30日生效,成功修正供应量数据,回收的 dotUSD 已返还国库。
此次事件凸显了从漏洞发现到生产部署之间的时间差带来的潜在风险。Parity 表示,将优化修复流程,加快关键补丁在主网中的部署速度。
Parity 表示,此次攻击导致 Polkadot 国库损失约138万美元等值的 DOT,但所有用户资产安全无损。该损失由国库承担,因其是唯一流动性提供方。
此次事件紧随 Polkadot 在10月发布的警告——关于 Fearless Wallet 扩展程序曾存在私钥泄露风险,进一步引发对链上资产安全管理的关注。监管机构和社区普遍呼吁加强漏洞披露与升级管理机制,避免类似事件重演。