XRP Ledger 修補十年舊漏洞 恐曾打破千億供應上限
XRP Ledger 開發人員於10月9日披露,該網絡支付引擎存在整數溢出漏洞,攻擊者理論上可憑空創造新 XRP,打破該帳本自2012年推出以來設定的1,000億枚代幣供應上限。該漏洞已於9月25日發布的 xrpld 3.4.1 軟件版本中修補。RippleX 表示,根據官方漏洞披露報告,未發現該漏洞曾在公共網絡上被利用。漏洞由研究員 Cayden Liao 與 Veria AI 於9月22日透過 XRPL 漏洞賞金計劃報告。RippleX 工程師在獨立伺服器上重現攻擊,確認新創造的 XRP 可在後續交易中被花費,並將該發現的嚴重程度由重大上調至危急。
該漏洞存在於支付引擎的溢出處理。當單一付款在帳本內建交易所消耗大量報價時,軟件以64位元整數加法計算買方應付總額,且沒有溢出檢查。數百個報價,每個要求極大量 XRP,可令總額超過64位元整數可容納範圍,並回繞成極小值。每個報價持有人獲全額支付,而買方僅被收取回繞後總額,令新鑄造的 XRP 留在攻擊者帳戶。兩項安全檢查理應攔截,卻未奏效。帳本的「不創造 XRP」不變量以同一方式合計淨餘額變動,因此同樣回繞,未能發現異常。逐帳戶餘額檢查僅在單一帳戶持有超過總供應量時失敗,而攻擊者將新鑄的 XRP 分散至數百個帳戶以避開檢查。
XRP Ledger 處理交易方式之變更,通常須經修訂程序,新規則需獲超過80%的受信任驗證者支持兩周後才生效。RippleX 刻意略過該程序,是該程序推出逾十年來首次,因該漏洞利用成本低、無需特殊權限,且可鑄造可花費 XRP。由於 xrpld 屬開源,經正常途徑發布修補會在主網上公開數周,期間仍可利用。走捷徑本身帶有混合版本網絡停頓風險,但正常交易不會觸及有漏洞的代碼路徑。在3.4.1發布當日,超過80%的默認 UNL 驗證者已在原始碼公布前運行該版本。
此事凸顯 XRP 價值主張有多依賴其供應可證明有限。全部1,000億枚代幣在推出時已創造,在該帳本上建立的機構將該上限視為保證。該漏洞自現行支付引擎於2015年編寫以來一直存在,惟 RippleX 未發現曾被利用的證據。同一版本亦修復了另一項 Batch 交易包裝驗證漏洞,該修復已於10月9日在主網啟用。RippleX 稱正於發布流程加入重新驗證步驟,確保每項標記為已修復的安全發現均對發布候選版本重新測試。披露之際,XRP Ledger 持續增加機構功能,包括為銀行而設的權限委託及穩定幣,而 XRP 供應與託管動態仍受持有人關注。