Cosmos Labs 低估漏洞,六条链遭窃 572 万美元
要点速览
- •Cosmos Hub 本身并未被黑;漏洞存在于 cosmos/evm 软件中,受影响的六条网络包括 MANTRA、TAC 和 KiiChain。
- •攻击者换手或出售了约 572 万美元,其中约 285 万美元经由中心化交易所,相关账户随后被冻结。
- •该漏洞为整数下溢:从较小的可支配余额中扣除含锁定代币在内的委托金额,可实现对受害资金的直接窃取。
- •Cosmos Labs 在十八位小数链上未能复现漏洞后误判其影响范围有限,其后的静默补丁说明也未传达延迟升级可能危及用户资金。
- •Cosmos Labs 计划扩大漏洞评估范围、扩展并核验安全联系网络,并接受运营安全实践的外部审计。

Cosmos Hub 并未被黑
此次事件并未危及 Cosmos Hub,也未波及整个 Cosmos 生态中的所有区块链。漏洞位于 cosmos/evm——一套允许基于 Cosmos 的独立网络运行以太坊兼容应用的共享软件。
根据 Cosmos Labs 事后分析,8 月 20 日至 25 日期间,使用该软件的六条网络遭到攻击。详细时间线中点名了 MANTRA、TAC 和 KiiChain;文件未公开其余三条链的名称。
这一区别很重要:它防止一次共享软件故障被误读为“Cosmos 被黑”的误导性标题。同样的范围原则也适用于 The Sandbox 跨链桥漏洞——集成组件被攻破并不代表整个底层协议都已被黑。
攻击者通过两条路径换手 572 万美元
Cosmos Labs 估计,按 8 月 19 日价格计算,攻击者通过去中心化平台换手了约 287 万美元。该机构称这一数字为未经独立审计的估算值。另有约 285 万美元据报道通过中心化交易所售出,使换手或出售总额达到约 572 万美元。
Cosmos Labs 表示,受影响的链报告称中心化交易所账户已在警方调查持续期间被冻结。572 万美元的换手总额不会改变,但冻结的交易所余额若能追回,可能降低最终净损失。
应对措施也限制了损失。Cosmos Labs 与另外 13 个潜在暴露的网络合作,对其修补、暂停或采取其他保护措施,未再发生报告的事件,并总共与 40 条链进行了协调。
记账不一致如何暴露了有效余额
漏洞源于软件的两个部分以不同方式计算余额。Cosmos EVM 的 StateDB 仅追踪账户可立即支配的金额。然而,Cosmos 的归属(vesting)账户既可持有可支配代币,也可持有锁定代币,而质押系统允许锁定代币被委托。
当软件从较小的可支配余额中扣除全部委托金额时,未经检查的算术下溢可能使结果回绕到接近 2^256 的数值。攻击者随后可在转账过程中将这一下溢与上溢配合使用。这类漏洞——无符号算术中的整数下溢与上溢——是智能合约和区块链漏洞中有据可查的一类,也是现代智能合约语言默认采用受检算术的原因之一。
该操作并未造成供应量的持久增加。相反,它可将高余额的受害账户清零,让攻击者获得该账户此前持有的余额。这使该漏洞构成直接的窃取资金风险,而不仅仅是显示不准确或记账异常。
警告在攻击前近四个月就已出现
窃案是一段更长过程的终点。决定性错误发生在最初的评估阶段,比任何人利用该代码早了数月。
Cosmos Labs 把生产环境威胁当作例行维护
最初的漏洞概念验证使用的是配置为六位小数的链。Cosmos Labs 测试了十八位小数的配置,无法复现结果,于是得出结论:已知的生产网络是安全的。这一结论是错误的:底层的余额不匹配可能影响每一条 Cosmos EVM 链,与其小数位配置无关。
当后续报告确认了更广泛的影响范围后,Cosmos Labs 已知生产资金处于风险之中。它选择了静默修补流程,意图在不公布可能助长攻击者的细节的前提下,将修复代码交到运营者手中。
修复版本在首次已知攻击前约 20 小时即已可用,但其说明未陈述严重性,也未告知运营者延迟升级可能暴露用户资金。运营者可以看到新版本包含安全修复,但说明并未解释未修补的链面临潜在的资金损失。
披露在次日早晨公开。一个下游分支中的拉取请求描述了漏洞利用路径,并在首次攻击前约 12 小时指明了受影响的发行标签。这份公开的拉取请求为攻击者提供了更清晰的路径,而 Cosmos Labs 此前已让运营者未能获得说明紧迫性的警告。
Cosmos Labs 面临的困境在开源安全领域并不陌生:完全披露漏洞可能在所有运营者完成修补之前武装攻击者,而保持沉默又可能让运营者无法判断紧迫性。整个软件行业的协同披露实践正是为了平衡这一取舍,而此次事件展示了当平衡在两端都失守时会发生什么。
Cosmos 并不知道每一条需要警告的链
即使是私下警告流程,也只有维护者知道该联系谁时才有效。Cosmos Labs 表示,该生态包含超过 115 条已知公链,但缺乏完整的登记表。在应对过程中,它发现了 11 个未在其安全渠道中登记的 Cosmos EVM 部署。
Cosmos Labs 维护着共享代码,却不知道每一个部署了该代码的网络。这一缺口使其难以在公布足够信息让链团队自行识别威胁之前送达机密警告。
应对时间线也说明了信息为何必须明确。在 MANTRA 报告首次攻击后,Cosmos Labs 约 two 小时后发出了第一封关键安全邮件。尽管此前已有沟通,TAC 仍在 MANTRA 之后约 45 小时遭到攻击,随后指导升级为建议所有 Cosmos EVM 链暂停。
对于独立的 Cosmos EVM 链而言,仅公布代码并不足够。其团队仍需了解升级的紧迫性,并协调一次破坏状态的发行。
存在漏洞的链必须升级或暂停
关键安全公告 列出 0.6.2 之前的版本以及从 0.7.0 起(含)到 0.7.2(不含)的版本为受影响版本。运营者应迁移至 Cosmos EVM 0.6.2、0.7.2 或更高版本。
不存在仅靠配置的临时解决方案。禁用质押预编译可消除公告中描述的主要触发条件,但 Cosmos Labs 并不将这一步骤视为升级的替代方案。无法立即安装修复版本的链应暂停运行。
BTCPay 此前在确认资金被盗后也发布了类似的具体版本指引:更新受影响的安装或将其下线。在这两起事件中,有效的指引之所以具体,是因为风险取决于所使用的软件版本。
下一步修复的是披露流程
Cosmos Labs 表示,将把漏洞评估范围扩大到报告者的概念验证之外,扩展其安全联系网络并核验这些联系人是否仍保持响应。它还计划为私密和静默补丁制定更清晰的标准,包括维护者何时应建议暂停而非协同升级。还计划对其运营安全实践进行外部审计。
这些变革针对的是此次事件中另一个代码补丁无法解决的部分:一个由独立链组成的去中心化群体如何接收、理解并依据有时效性的警告采取行动。最初的评估过快地缩小了漏洞范围。随后的发行流程又向部分被寄望安装修复的人隐瞒了紧迫性。代码在首次攻击之前就已可用。若干运营者缺少的,是一份说明等待可能让用户付出资金代价的警告。
本文仅供参考,不构成财务、投资或安全建议。网络运营者应查阅 Cosmos EVM 官方公告并核实其部署的版本。
来源:Coindoo