新聞加密貨幣XRP Ledger 修復潛藏十年、可能鑄造偽造 XRP 的支付引擎漏洞

XRP Ledger 修復潛藏十年、可能鑄造偽造 XRP 的支付引擎漏洞

作者: Decrypt·

重點速覽

  • •XRP Ledger 支付引擎中的整數溢位漏洞自 2015 年程式碼編寫以來便已存在,可能讓攻擊者在單一交易中創造超過代幣總供應量的可花費 XRP。
  • •該漏洞由一名研究員於九月透過 XRPL 漏洞賞金計畫回報,僅在單筆支付消耗數百個特製訂單簿報價時出現,使應付金額回繞成極小值,而賣方仍獲全額付款。
  • •帳本內建、用以確保沒有交易鑄造 XRP 的安全檢查依賴同樣有缺陷的算術,與易受攻擊的程式碼一同靜默失效。
  • •修補已於 9 月 25 日隨 3.4.1 版本發布,當天即有超過 80% 的可信驗證節點採用,這是首次有交易處理變更刻意繞過帳本為期兩週的修正案投票流程。
  • •維護者未發現任何漏洞曾被利用的證據,此次揭露也令人聯想到先前涉及 Zcash 屏蔽池健全性漏洞的偽造幣恐慌。
XRP Ledger 修復潛藏十年、可能鑄造偽造 XRP 的支付引擎漏洞

XRP Ledger 背後的開發者已揭露並修復一個關鍵漏洞,若未處理,攻擊者原本可能憑空憑空造出 XRP——這個缺陷在網路程式碼中潛伏了約十年之久。

在週五發布的揭露報告中,帳本維護者表示,一名研究員於九月透過 XRPL 漏洞賞金計畫回報了這個錯誤。問題出在支付引擎(軟體中負責處理支付的元件)的整數溢位。

這個算術錯誤只有在異常條件下才會浮現。當單筆支付消耗訂單簿中數百個特製報價時,買方應付金額的總和超過了系統可儲存的最大值,並「回繞」成一個極小的數字。引擎全額支付了每位賣方,卻幾乎沒有向買方收費,差額就等同於憑空新增、本不該存在的 XRP。

更糟的是,帳本內建、用以確認沒有交易會創造 XRP 的安全檢查,依賴的是同樣有缺陷的算術,因此也以相同方式回繞,未能察覺任何異常。維護者指出,攻擊者本可在單一交易中創造遠超代幣總供應量的可花費 XRP,然後轉移、交易或將其發送到交易所。這項檢查是帳本賴以保證沒有任何交易能鑄造新 XRP 的機制,卻在它本應監督的程式碼失效之際一同靜默失效。

RippleX 工程師確認,該漏洞自 2015 年現行支付引擎編寫以來便已存在,且因沒有任何正常支付會接近觸發溢位的程度而一直未被發現。團隊表示,沒有任何證據顯示該漏洞曾被利用。

修復已於 9 月 25 日隨 3.4.1 版本發布,當天就有超過 80% 的網路可信驗證節點運行該版本。值得注意的是,此次修補繞過了帳本通常的修正案流程——該流程要求驗證節點投票並等待兩週後變更才會生效。這是該系統問世十多年來,首次有交易處理變更刻意以這種方式發布。維護者表示,問題的嚴重性足以合理化這項例外,因為開源修復一經發布便會揭露漏洞,同時讓它在數週內仍可被利用。如今缺陷已公開,任何仍在使用較早版本的驗證節點都有充分的理由與現成的解方案——升級至 3.4.1 即可從該節點的支付處理中移除有缺陷的算術。

此次揭露令人聯想到今年稍早撼動 Zcash 的偽造幣恐慌,當時這個隱私幣緊急修補其屏蔽池中可能允許偽造代幣的健全性漏洞。該事件曾使 ZEC 大跌,直到網路的 Ironwood 升級解決問題為止。兩起事件針對的都是同一類保證:無論交易設計得多麼巧妙,區塊鏈上的資產都不可能憑空製造。

XRP 本週也未能倖免。該代幣週一交易價格為 1.38 美元,24 小時內下跌 1.6%,是主要加密貨幣中表現最差者,過去七天則下跌 9.4%。