Lightning 開發套件(Lightning Development Kit,LDK)舊版存在一項漏洞:通道對端節點重新連線後,若聲稱未收到訊息,可能導致資金損失。LDK 開發團隊於 10 月 1 日在 v0.2.7 與 v0.1.13 中修補此問題。
Lightning Network是透過支付通道處理交易的比特幣(BTC)擴充技術。LDK 是用來開發支援這個網路的錢包與應用程式的函式庫。由於函式庫會整合至應用程式後再發布,開發者也須確認更新版本與修補程式碼已納入實際部署的應用程式。
LDK 變更紀錄指出,當通道對端確認狀態更新後重新連線,卻聲稱沒有收到該訊息時,可能觸發漏洞。修補前,LDK 可能在相同狀態序號下,為彼此衝突的承諾交易簽名。承諾交易用於在比特幣區塊鏈上結算通道的協議狀態。
若漏洞遭到利用,負責轉送付款的節點可能已將款項付給下一位收款人,卻無法向前一位付款者追回資金。LDK 變更紀錄表示,修補版本只會在等待確認回覆期間重新傳送訊息;若節點聲稱漏收已確認的更新,則會強制關閉通道。公開資訊未說明這項漏洞是否曾遭實際利用,也未提供損失規模。
兩個版本的修補範圍不同。v0.2.7 修補了重新連線漏洞及 LSPS2 付款金額驗證問題;v0.1.13 的變更紀錄則列有重新連線漏洞修補。LSPS2 是流動性服務提供者在處理付款時開啟通道的方式。
LDK 變更紀錄指出,惡意用戶端若謊報轉送付款金額高於實際收款金額,服務提供者可能動用超過實收金額的比特幣來開設通道並轉送付款。因此,LSPS2 營運者除了更新函式庫,也應檢查舊版建立、目前仍在佇列中的付款合約。變更紀錄表示,舊版產生的待處理合約可能仍包含未經驗證的金額,相關修補已納入 v0.2.7。
這次更新延續本報先前對 LDK v0.2.6 的報導,當時內容涉及拼接功能相關的資金損失問題與付款處理錯誤。應用程式開發者須分別檢查目前使用的 LDK 版本、實際部署的程式碼,以及 LSPS2 待處理合約。
留言 0