Bitcoinjs-lib 是一個用於構建比特幣應用程式的軟體庫,已修復兩個可能導致應用程式低估有效交易礦工費用的漏洞。10 月 26 日的安全披露中列出了相應版本線的修復版本:5.2.2、6.1.9 和 7.0.4。當應用程式導入這些套件並依賴該庫的費用計算或過高費用保護功能,而未獨立驗證所花費的輸出時,應用程式將面臨風險。
這些缺陷涉及部分簽署的比特幣交易(PSBTs)。BIP 174 將 PSBTs 定義為客戶端之間交換交易細節和簽名的格式。簽署、簽名合併、輸入最終化和交易提取即使在單一應用程式中仍為獨立的操作。比特幣交易的手續費等於總輸入值減去總輸出值。因此,低估輸入的價值會使計算出的手續費看起來較低。
第一個缺陷允許簽名和費用核算對同一輸入賦予不同的值。簽名依賴於完整的前一筆交易,而費用核算則偏好價值較低的衝突記錄。因此,易受攻擊的軟體可能會授權實際交易,同時計算錯誤的費用。該建議描述了一個使用 bitcoinjs-lib 7.0.1 的示例,實際費用為 900,000,000 satoshi,但報告的費用僅為 200 satoshi。該示例產生了經過驗證的簽名,並允許提取資金,且未觸發預設的費用率警告。
第二則建議描述了缺乏輸入值記錄的已定稿輸入。費用計算器會將這些輸入視為價值為零。一個應用程式可以從其他方導入已簽署的 PSBT,並在無需再次簽署的情況下達到該計算結果。第二則建議展示了一筆假設交易,其實際費用為 91,000 satoshi,但報告的費用為 1,000 satoshi。已定稿的腳本和簽名本身並不能確立缺乏價值記錄的輸入的價值。
衝突記錄漏洞影響 5.2.0 至 5.2.1 版本、6.0.0 至 6.1.8 版本(包括 6.1.0-rc.0),以及 7.0.0-rc.0 至 7.0.3 版本。遺漏記錄漏洞影響相同的 6 和 7 版本,以及 5.1.0 至 5.2.1 版本。財務損失需透過授權且有效的交易廣播至網路並被接受。這些漏洞無法生成簽名,多餘的價值將作為手續費歸礦工所有。
這些修復措施使簽名和會計使用同一種方法來解決先前的輸出結果。修復後會拒絕衝突的值或腳本,並在計算手續費時要求每個輸入都提供值。這些修復還會使與相關元數據變更或組合相關的快取手續費和提取的交易失效。維護者應檢查依賴項版本,並審查導入的 PSBT 的驗證。無法升級的維護者應獨立確認所引用的輸出值。維護者應在簽名或依賴計算的手續費前,拒絕衝突的記錄。維護者應在依賴手續費或提取交易前,驗證每個輸入的值。
Bitcoinjs-lib 修復了 2 個可能導致手續費低估的漏洞
CryptoSlate分享
比特幣新聞:Bitcoinjs-lib 已發布修補程式,修復兩個可能導致比特幣應用程式費用低估的漏洞。這些與 PSBT 相關的缺陷可能導致錯誤的費用計算和財務損失。修復版本為 5.2.2、6.1.9 和 7.0.4,更新後可確保解決輸出和計算費用的方法一致。比特幣新聞媒體正強調更新受影響應用程式的緊迫性。
來源:顯示原文
免責聲明:本頁面資訊可能來自第三方,不一定反映KuCoin的觀點或意見。本內容僅供一般參考之用,不構成任何形式的陳述或保證,也不應被解釋為財務或投資建議。 KuCoin 對任何錯誤或遺漏,或因使用該資訊而導致的任何結果不承擔任何責任。
虛擬資產投資可能存在風險。請您根據自身的財務狀況仔細評估產品的風險以及您的風險承受能力。如需了解更多信息,請參閱我們的使用條款和風險披露 。