XRP Ledger 已修復一個可追溯至 2015 年的重大安全漏洞,該漏洞可能允許攻擊者透過一筆特別設計的交易創造約 18 兆 XRP,且超過 80% 的受信任驗證者已於 9 月 25 日安裝緊急更新。
摘要
- XRPL 開發者修復了一個可能創造超出其供應量的可花費 XRP 的關鍵支付錯誤。
- 研究員 Cayden Liao 演示了可透過一筆精心設計的交易鑄造約 18 兆 XRP。
- 安全團隊未發現該溢出漏洞在公共網路上被利用的證據。
- 開發者確認,超過 80% 的預設驗證者已於 9 月 25 日升級至 xrpld 3.4.1。
- 另一項 Batch 驗證修復在驗證者延遲原定推出計畫後,於 10 月 9 日啟用。
XRP Ledger 基金會與 RippleX 在 10 月 9 日的披露中確認了該漏洞,解釋稱網路支付引擎中的一個錯誤可能產生超出其預期 1000 億供應量的可花費 XRP。開發者在測試期間重現了該問題,並發布了 3.4.1 版本以解決該問題。他們的調查未發現該漏洞在公共網路上被利用的證據。安全研究員 Cayden Liao 和 Veria AI 在報告該漏洞並演示其潛在影響後,獲得了漏洞賞金計畫最高 25 萬美元的獎勵。
XRP Ledger 修復可能創造數兆 XRP 的錯誤
該漏洞影響了 XRP Ledger 的支付引擎,該引擎處理涉及網路內建去中心化交易所的轉帳和交易。
根據官方披露,問題源於 2015 年編寫的軟體中的整數溢出。當計算產生的數字大於電腦系統使用分配的位數所能表示的數字時,就會發生整數溢出。
在此案例中,支付引擎將網路訂單簿中多個報價相關的 XRP 金額相加。該軟體使用 64 位元整數來計算買方在完成涉及多個報價的支付時所欠的總金額。
開發者發現,攻擊者可以創建數百個特別定價的報價,並安排一筆支付來消耗它們。當計算出的總額超過整數的最大值時,該數字可能會回繞到一個小得多的金額。系統仍會將報價中指定的全額 XRP 記入個別賣方,即使買方僅支付了溢出產生的減少金額。差額將創造出先前不存在的 XRP。
根據 XRPL 基金會的說法,由此產生的加密貨幣可以轉移到其他帳戶、交易或發送到交易所。報告描述了潛在結果:「攻擊者可能創造出遠超總供應量的可花費 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治理帶來了不尋常的情況。通常,交易處理的變更必須通過網路的修正案系統。一項修正案需要獲得超過80%的可信驗證者在連續兩週內的支持才能啟動。
對於支付溢位漏洞,開發人員決定在驗證者升級其軟體時立即套用修復。XRPL基金會解釋,正常流程會在審批期間暴露該漏洞,使其仍可被利用。
由於XRP Ledger軟體是開源的,發布修補程式可能揭示漏洞的位置和性質。
開發人員得出結論,等待常規修正案流程可能產生額外的安全風險。緊急方案帶來了另一個顧慮:運行不同軟體版本的驗證者可能對如何處理惡意交易產生分歧。
在極端情況下,這種分歧可能暫時阻止網路確認新的帳本。基金會表示,該決定是在與RippleX、驗證者營運商及其他XRPL貢獻者協商後做出的。截至9月25日,預設唯一節點清單上超過80%的驗證者已升級至3.4.1版本。
公開原始碼在緊急安全回應後隨後發布。XRPL基金會的發布記錄將3.4.1版本描述為解決安全敏感協議問題的緊急更新。
XRP Ledger在Batch啟動前解決第二個安全漏洞
10月9日的披露涵蓋了另一個涉及XRP Ledger Batch交易功能的漏洞。Batch允許開發人員將最多八筆交易合併為一個操作。該功能支援不同的執行模式,包括每筆交易都必須成功才能使整個操作被接受的安排。
在安全測試期間,研究人員發現了一個涉及個別交易如何在Batch內部打包的驗證錯誤。該協議要求每筆交易使用一個名為RawTransaction的特定欄位。
然而,該軟體在某些條件下可以接受替代的欄位名稱。調查人員發現,不同的伺服器版本可能會以不同方式處理那些格式不正確的交易。
根據 XRPL 基金會的說法,如果在問題修正之前該功能就已啟用,由此產生的分歧可能會中斷網路驗證。該問題最初是在 Sherlock Attackathon 期間被發現,後來由 XRPL 基金會貢獻者 Denis Angell 進行審查。RippleX 工程師 Mayukha Vadari 判定,該漏洞在伺服器版本之間造成了潛在的共識風險。
開發人員的回應是引入了 fixBatchV1_2 修正案。該修正案要求每筆 Batch 交易都必須使用核准的欄位格式,並拒絕打包方式不正確的交易。在開發人員完成修正期間,驗證者暫時撤回了對先前 BatchV1_1 啟用時程的支持。
fixBatchV1_2 和 BatchV1_1 均於 10 月 9 日在 XRP Ledger 主網上啟用。根據已驗證網路報告中引用的 XRPScan 數據,XRP Ledger Batch 啟用獲得了 30 個驗證者的支持,其中五個反對該升級。
較早的Batch 安全審查研究詳細記錄了 9 月 25 日的緊急發布以及該功能啟用前所需的防護措施。最初的版本此前曾面臨安全方面的擔憂,包括在開發人員審查期間發現的交易授權問題。
8 月另一項獨立的XRP Ledger 安全審計記錄了在涵蓋擬議協議功能的 Sherlock 競賽期間所識別的 96 個有效漏洞。
針對最新的 Batch 漏洞,XRPL 基金會確認,在發現該問題時,受影響的修正案尚未在主網上啟用。沒有用戶資金損失,沒有私鑰洩露,也沒有因該特定缺陷而發生共識失敗。10 月 9 日的啟用意味著運行較舊軟體版本的伺服器現在已被修正案封鎖,必須升級到 3.4.1 或更高版本才能保持同步。
XRPL 基金會表示,正在為未來的軟體發布引入一項額外的驗證要求:先前報告過的安全問題必須在發布候選版本上再次測試,才能被歸類為已修復。
根據該基金會的說法,該程序將適用於來自審計、漏洞賞金計畫、AI 輔助安全測試以及其他漏洞評估的發現。






