新聞加密貨幣Cosmos Labs 在價值 572 萬美元的六鏈攻擊前誤判漏洞

Cosmos Labs 在價值 572 萬美元的六鏈攻擊前誤判漏洞

作者: Coindoo·

重點速覽

  • Cosmos Hub 本身並未遭駭;缺陷存在於六個網路(包括 MANTRA、TAC 與 KiiChain)使用的 cosmos/evm 軟體中。
  • 攻擊者兌換或出售了約 572 萬美元,其中約 285 萬美元透過中心化交易所,相關帳戶隨後被凍結。
  • 該漏洞是將委託金額(含鎖定代幣)從較小的可動用餘額中扣除所導致的整數下溢,構成直接的受害者資金竊取。
  • Cosmos Labs 在十八位小數的鏈上無法重現漏洞後,最初誤判其範圍有限,其後的靜默修補也缺乏說明延後升級將危及用戶資金的資訊。
  • Cosmos Labs 計劃擴大漏洞評估範圍、擴展並驗證其安全聯絡網路,並接受營運安全實務的外部審計。
Cosmos Labs 在價值 572 萬美元的六鏈攻擊前誤判漏洞

Cosmos Hub 並未遭駭

本次事件並未入侵 Cosmos Hub,也未影響整個 Cosmos 生態系中的每一條區塊鏈。缺陷位於 cosmos/evm,這是一套讓基於 Cosmos 的獨立網路運行以太坊相容應用的共享軟體。

根據 Cosmos Labs 的事後檢討報告,使用該軟體的六個網路在 8 月 20 日至 8 月 25 日之間遭到利用。詳細時間線中點名了 MANTRA、TAC 與 KiiChain;文件並未公開其餘三個網路的身分。

這項區別相當重要:它避免了共享軟體的失效被誤導為「Cosmos 遭駭」的標題。同樣的範圍認定原則也適用於 The Sandbox 跨鏈橋攻擊事件——某個整合環節被入侵,並不代表整個底層協議都遭到了駭客攻擊。

攻擊者透過兩條路徑兌換 572 萬美元

Cosmos Labs 估計,以 8 月 19 日價格計算,攻擊者透過去中心化平台兌換了約 287 萬美元。該公司形容此數字為尚未經獨立審計的估算值。另有約 285 萬美元據報透過中心化交易所出售,使兌換或出售總額達約 572 萬美元。

Cosmos Labs 表示,受影響的鏈回報稱中心化交易所帳戶已於警方調查期間被凍結。572 萬美元的兌換總額不會改變,但追回被凍結的交易所餘額可能降低最終淨損失。

應對措施也限制了損害。Cosmos Labs 與另外 13 個可能暴露於風險的網路合作修補、暫停或以其他方式保護它們,未傳出進一步事件,總計協調了 40 條鏈。

帳務不一致如何暴露有效餘額

該漏洞源自軟體中兩個部分以不同方式計算餘額。Cosmos EVM 的 StateDB 僅追蹤帳戶可立即動用的金額。然而 Cosmos 的歸屬(vesting)帳戶可同時持有可動用與鎖定的代幣,而質押系統允許鎖定代幣被委託。

當軟體從較小的可動用餘額中扣除全部委託金額時,未檢查的算術下溢可能使結果環繞為接近 2^256 的數值。攻擊者隨後可在轉帳過程中將此下溢與溢出配對使用。這類漏洞——無符號算術中的整數下溢與溢出——是智慧合約與區塊鏈安全中已有充分記載的類別,也是現代智慧合約語言預設納入檢查算術的原因之一。

此過程並未造成供給量的持續增加。相反地,它可能將高餘額的受害者帳戶清零,並讓攻擊者取得該帳戶先前的餘額。這使該缺陷構成直接的資金竊取風險,而非僅是顯示錯誤或帳務異常。

警告早在攻擊前近四個月即已出現

這起竊盜是一段更長過程的終點。決定性的錯誤發生於最初評估階段,早在任何人利用該程式碼之前數月。

Cosmos Labs 將生產環境威脅視為例行維護

最初的漏洞概念驗證使用了一條設定為六位小數的鏈。Cosmos Labs 測試了十八位小數的設定,無法重現該結果,於是斷定已知的生產網路是安全的。此結論是錯誤的:底層的餘額不一致可能影響每一條 Cosmos EVM 鏈,與其小數位設定無關。

當後續通報確認了更廣的影響範圍後,Cosmos Labs 已知生產資金暴露於風險。它選擇了靜默修補流程,意在將修復後的程式碼交到營運者手中,同時不公布可能幫助攻擊者的細節。

修補版本在首次已知攻擊前約 20 小時即已可用,但其說明未載明嚴重性,也未告知營運者延後升級可能使用戶資金暴露於風險。營運者可看到新版本包含安全修復,但說明並未解釋未修補的鏈面臨潛在的資金損失。

揭露於隔日早晨公開。一個下游 fork 中的 pull request 在首次攻擊前約 12 小時描述了攻擊路徑並指出了受影響的版本標籤。這份公開的 pull request 給了攻擊者更明確的路徑,而 Cosmos Labs 早已未向營運者提供解釋急迫性的警告。

Cosmos Labs 面臨的兩難在開源安全領域眾所周知:完整揭露漏洞可能在所有營運者修補前武裝攻擊者,而保持沉默又可能使營運者無法判斷急迫性。軟體業的協調揭露實務正是為了平衡這種取捨,而此事件展示了當平衡在兩端都失衡時會發生什麼。

Cosmos 並不知道所有需要警告的鏈

即使是私下的警告流程,也只有當維護者知道該聯絡誰時才行得通。Cosmos Labs 表示,生態系包含超過 115 條已知公開鏈,但缺乏完整的登錄資料。在應對過程中,它獲知有 11 個未登錄於其安全通道的 Cosmos EVM 部署。

Cosmos Labs 維護共享程式碼,卻不知道每一個部署該程式碼的網路。此落差使其難以在公布足夠資訊讓各鏈團隊自行辨識威脅之前,先行發出保密警告。

應對時間線也顯示了訊息為何必須明確。在 MANTRA 通報首次攻擊後,Cosmos Labs 約兩小時後發出首封關鍵安全電子郵件。儘管先前已有溝通,TAC 仍在 MANTRA 之後約 45 小時遭到攻擊,指引隨後升級為建議所有 Cosmos EVM 鏈暫停運作。

對獨立的 Cosmos EVM 鏈而言,僅公布程式碼並不足夠。這些團隊仍須得知升級具有急迫性,並協調一次狀態破壞性的版本發布。

存在漏洞的鏈必須升級或暫停

關鍵安全公告列出 0.6.2 之前的版本以及 0.7.0 至(不含)0.7.2 之間的版本為受影響版本。營運者應升級至 Cosmos EVM 0.6.2、0.7.2 或更新的版本。

不存在僅靠設定的權宜之計。停用質押預編譯(precompile)可移除公告中描述的主要觸發條件,但 Cosmos Labs 並不將該步驟視為升級的替代方案。無法立即安裝修補版本的鏈應暫停運作。

BTCPay 在確認資金遭竊後也發布了類似的版本特定指示:更新受影響的安裝或使其離線。在這兩起事件中,有效的指引都很具體,因為風險取決於所使用的軟體版本。

下一步修復的是揭露流程

Cosmos Labs 表示,將把漏洞評估範圍擴大至舉報者的概念驗證之外,擴展其安全聯絡網路並檢查這些聯絡人是否仍能回應。它還計劃為私有與靜默修補制定更清晰的標準,包括維護者應在何時建議暫停而非協調升級。另亦計劃對其營運安全實務進行外部審計。

這些變革處理的是另一個程式修補無法解決的事件層面:一個去中心化的獨立鏈群體,如何接收、理解並依時間敏感的警告採取行動。最初的評估過快地縮小了漏洞範圍,後續的發布流程又對部分應安裝修復的人隱瞞了急迫性。程式碼在首次攻擊前即已可用,數個營運者所欠缺的,是等待可能使用戶資金受損的警告。

本文僅供資訊參考,不構成財務、投資或安全建議。網路營運者應查閱 Cosmos EVM 官方公告並確認其部署版本。

來源:Coindoo