XRP Ledger已修复一项可追溯至2015年的严重安全漏洞。该漏洞理论上可能让攻击者通过一笔专门设计的交易创建约18万亿枚XRP;截至9月25日,超过80%的受信任验证者已安装紧急更新。
- XRPL开发者修复了一项严重的支付漏洞,该漏洞可能在供应量之外生成可花费的XRP。
- 研究人员Cayden Liao演示称,可通过一笔构造交易铸造约18万亿枚XRP。
- 安全团队未发现该溢出漏洞在公网上被利用的证据。
- 开发者确认,9月25日已有超过80%的默认验证者升级至xrpld 3.4.1。
- 另一项Batch验证修复于10月9日生效,此前验证者推迟了原定上线时间。
XRP Ledger Foundation和RippleX在10月9日的披露中确认了这一漏洞,并解释称,网络支付引擎中的一个错误本可能生成超出其既定1000亿枚供应上限的可花费XRP。开发者在测试中复现了该问题,并发布3.4.1版本予以修复。调查未发现该漏洞在公网上被利用的证据。安全研究员Cayden Liao和Veria AI因报告该漏洞并展示其潜在影响,获得漏洞赏金计划最高25万美元奖励。
XRP Ledger修复可生成数万亿枚XRP的漏洞
该漏洞影响了XRP Ledger的支付引擎,该引擎负责处理转账以及涉及网络内置去中心化交易所的交易。
根据官方披露,问题源于2015年编写的软件中的整数溢出。整数溢出是指计算结果超过计算机系统在所分配比特数内可表示的最大值。
在这一案例中,支付引擎会将订单簿中多个报价对应的XRP金额相加。软件使用64位整数来计算买方在完成涉及多个报价的支付时应支付的总额。
开发者发现,攻击者可以创建数百个定价异常的报价,并安排一笔支付将这些报价一并消耗。当计算出的总额超过整数上限时,数值会回绕到一个小得多的金额。系统仍会向各个卖方记入其报价中指定的完整XRP金额,而买方实际只支付了因溢出而得到的较小金额。差额会生成此前并不存在的XRP。
根据XRPL Foundation的说法,由此产生的加密货币可以转移到其他账户、交易或发送至交易所。报告描述的潜在结果是:“攻击者本可以创建远超总供应量的可花费XRP。”
开发者表示,该漏洞无法通过普通交易触发。攻击者需要创建数百个账户,挂出价格异常的报价,并提交一笔经过精心构造的交易将这些报价一起处理。现有安全检查之所以失效,是因为系统用于验证供应量的计算方式与导致原始错误的算术类型相同。
与此同时,另一项账户余额检查也可能被绕过,因为新生成的XRP可以分散到多个钱包中。
研究人员发现潜在的18万亿枚XRP利用方式
该漏洞是在安全研究员Cayden Liao和Veria AI测试XRP Ledger开源软件后进入开发者视野的。
Veria Labs于10月10日公布研究结果,称其自动化安全测试系统在9月21日发现了这一问题。次日,研究人员在本地测试网络上开发出可运行的概念验证。
据该公司称,演示显示可通过一笔专门设计的交易创建约18万亿枚XRP。按研究人员的计算,这一数量约为XRP目标总供应量的184倍。该数字描述的是受控安全测试的结果,并不代表加密货币流通供应量的实际增加。Liao于9月22日通过官方XRPL漏洞赏金计划提交了该漏洞。
RippleX工程师在独立服务器上复现了这一问题,并确认新生成的XRP可以在后续支付中被花费。
最初报告将该漏洞定为重大,但在确认潜在后果后,开发者将其严重性上调为严重。Veria Labs表示,如果攻击者成功利用该漏洞,XRP的全部市值都可能面临风险。该公司的估算基于当时约940亿美元的XRP市值。
不过,这一940亿美元数字是研究人员对潜在财务暴露的估算,并非已确认损失。安全团队未发现公网上存在未经授权创建XRP的证据。10月8日,Veria AI因识别并负责任地披露该问题获得最高25万美元赏金。
RippleX在没有常规审批流程的情况下发布紧急修复
在确认漏洞后,RippleX工程师于9月22日至9月23日之间开发出修复方案。补丁被纳入9月25日发布的xrpld 3.4.1版本。
根据官方披露,开发者加入了检查机制,阻止支付引擎接受超出允许整数范围的计算结果。更新后的软件会拒绝受影响的计算,并返回普通的支付失败,而不是创建额外的XRP。工程师还通过用更宽的计数器替换现有算术方式,加强了网络的供应量验证,以检测类似错误。作为预防措施,其他余额计算也接受了审查。
不过,这次修复的部署方式在XRP Ledger治理中带来了不同寻常的情况。通常,交易处理方面的变更必须通过网络的amendment系统。某项amendment需要连续两周获得超过80%的受信任验证者支持后才能激活。
针对这项支付溢出漏洞,开发者决定在验证者升级软件后立即应用修复。XRPL Foundation解释称,若按正常流程推进,会在审批期间暴露漏洞并使其仍可被利用。
由于XRP Ledger软件是开源的,发布补丁可能会暴露漏洞的位置和性质。
开发者最终认为,等待常规amendment流程可能带来额外安全风险。紧急处理方式也伴随另一项担忧:运行不同软件版本的验证者可能会对恶意交易的处理方式产生分歧。
在极端情况下,这种分歧可能暂时阻止网络确认新的账本。基金会表示,这一决定是在与RippleX、验证者运营方及其他XRPL贡献者协商后作出的。截至9月25日,默认Unique Node List中的超过80%验证者已升级至3.4.1版本。
随后,在立即安全响应完成后,公开源代码才被发布。XRPL Foundation的发布记录显示,3.4.1版本属于针对安全敏感协议问题的紧急更新。
XRP Ledger在Batch激活前修复第二个安全漏洞
10月9日的披露还涉及XRP Ledger Batch交易功能中的另一项漏洞。Batch允许开发者将最多8笔交易合并为一次操作。该功能支持不同执行模式,包括所有交易都必须成功、整个操作才会被接受的安排。
在安全测试中,研究人员发现了一个验证错误,涉及单个交易在Batch中的封装方式。协议要求每笔交易都使用名为RawTransaction的特定字段。
不过,在某些条件下,软件可能接受其他字段名。调查人员发现,不同服务器版本可能会以不同方式处理这些格式错误的交易。
根据XRPL Foundation的说法,如果该功能在问题修复前激活,最终可能引发网络验证分歧。该问题最初是在Sherlock Attackathon期间发现的,后来由XRPL Foundation贡献者Denis Angell进一步研究。RippleX工程师Mayukha Vadari判断,这一漏洞会在不同服务器版本之间造成潜在的共识风险。
开发者随后引入了fixBatchV1_2 amendment。该amendment要求每笔Batch交易都使用获批的字段格式,并拒绝格式错误的封装交易。验证者在开发者完成修正期间,暂时撤回了对先前BatchV1_1激活时间表的支持。
fixBatchV1_2和BatchV1_1均于10月9日在XRP Ledger主网上激活。根据XRPScan数据以及验证后的网络报告,XRP Ledger Batch激活获得30个验证者支持,5个验证者反对。
此前对Batch安全审查的研究详细说明了9月25日的紧急发布以及该功能激活前所需的保护措施。最初版本此前曾面临安全担忧,包括开发者审查中发现的交易授权问题。
XRP Ledger在8月进行的另一项安全审计记录了在Sherlock竞赛中识别出的96个有效漏洞,覆盖拟议中的协议功能。
针对最新的Batch漏洞,XRPL Foundation确认,在问题被发现时,受影响的amendment尚未在主网上激活。没有用户资金损失,没有私钥泄露,也没有因该漏洞导致共识失败。10月9日的激活意味着,运行旧版本软件的服务器现在已被amendment阻断,必须升级到3.4.1或更高版本才能保持同步。
XRPL Foundation表示,未来软件发布将增加一项额外验证要求:此前报告过的安全问题必须在发布候选版本上重新测试,才能被归类为已修复。
据该基金会称,这一流程将适用于审计、漏洞赏金计划、AI辅助安全测试以及其他漏洞评估中发现的问题。











