亚洲财经

☰ 搜索

XRP账本修复十年旧漏洞,该漏洞可能导致可花费的XRP产生

XRP 账本修复十年历史漏洞:曾可凭空生成可花费的 XRP

XRP Ledger(XRP 账本)的开发人员披露了一个关键性安全漏洞。该漏洞若被利用,攻击者可能绕过旨在防止加密货币供应量增加的安全机制,凭空创造出可花费的 XRP。

这一支付引擎漏洞由 Cayden Liao 和 Veria AI 于 9 月 22 日通过 XRPL 漏洞赏金计划报告。RippleX 工程师在独立服务器上复现了该漏洞,证实新创建的 XRP 可在后续支付中被使用,并将漏洞严重程度从“重大”提升至“关键”。目前没有任何证据表明该漏洞曾在任何公共 XRP 账本网络上被实际利用。开发人员私下准备了修复方案,并于 9 月 25 日发布了 xrpld 版本 3.4.1,距离补丁合并到紧急发布分支仅过去两天。

整数溢出可能导致 XRP 供应检查失效

该缺陷存在于 XRP 账本的支付引擎中,时间跨度约为自 2015 年起。其核心问题在于当一笔支付消耗订单簿中的多个报价时,未对 64 位整数运算进行检查。

攻击者可以创建数百个账户,并设置精心构造的报价,以极少量的其他代币出售换取极大数量的 XRP。如果单笔支付消耗了这些报价,计算出的总金额可能会超过整数支持的最大值。此时,交易不会被拒绝,而是会发生回绕(wrap around),变成一个较小的数值。每个报价的所有者仍会收到报价中指定的全额 XRP,而买方仅需支付经过回绕处理后的较小金额。

实施此攻击仅需数百枚 XRP 用于账户和报价储备,其中大部分资金随后可以被回收,此外还需支付普通的交易费用。XRP 内置的防创造 XRP 检查机制无法阻止此类攻击,因为其使用的不变量验证采用了相同类型的算术运算,同样可能发生溢出;而单独的账户余额限制则可以通过将新创造的 XRP 分散到数百个账户中来规避。

该缺陷仅限于故意构造的交易,无法通过正常的支付或交易活动触发。

验证节点数小时内升级至 3.4.1 版本

开发人员选择立即部署 XRP 溢出修复程序,而不是将其纳入 XRPL 正常的修正案流程。通常情况下,协议变更需要获得超过 80% 验证节点的支持并持续两周后才能激活。如果在整个等待期间漏洞保持暴露,将会形成一个窗口期,使得攻击方法虽已公开但仍可被利用的风险持续存在。

在默认唯一节点列表(UNL)上,超过 80% 的验证节点已于 9 月 25 日(即紧急版本发布当天)升级至 3.4.1 版本。

版本 3.4.1 现在会在报价总额发生溢出时拒绝支付,并使用更宽的计数器来增强防止 XRP 违规创建的不变量检查。此外,额外的余额计算逻辑也已加固,以防范类似的算术故障。

此次事件发生在 2025 年发现的无关的 xrpl.js 供应链漏洞之后,后者影响的是恶意的 JavaScript 包发布,而非 XRP 账本协议本身。XRPL 的修正案系统也用于部署新功能,例如拟议中的 XRPL 借贷协议,其中验证节点的批准决定了新的交易行为是否激活。

此次溢出缺陷并未改变 XRP 现有的供应量。未发现任何未经授权产生的 XRP,服务器运营商必须运行 xrpld 3.4.1 或更高版本才能与网络保持同步。