Cosmos Labs 發出警告,指出共享 Cosmos EVM 模組中一個關鍵的餘額處理漏洞,在 2026 年 8 月 20 日至 8 月 25 日期間被利用,導致六個區塊鏈的資金被盜。
該漏洞,指定為 GHSA-7g4w-cg88-2cq2,被 Cosmos Labs 評為「嚴重」,但發布時沒有 CVE 識別碼、弱點分類或 CVSS 分數。
受影響的版本為 < 0.6.2 以及 >= 0.7.0 < 0.7.2,修復版本已於 8 月 19 日在 v0.6.2 和 v0.7.2 中發布。鏈營運商被告知應升級到這些版本或更新的版本,此變更會破壞狀態,並需要協調的網路升級。
無法立即升級的營運商被告知應停止鏈的運行,而不是嘗試協調的治理升級。
在 8 月 28 日發布的事件分析報告中,Cosmos Labs 表示該漏洞是透過其漏洞獎勵計畫於 4 月 25 日首次報告,當時評估認為對線上網路上的資金沒有風險。
「我們無法在 18 位數網路上重現該漏洞,並錯誤地結論認為它僅影響非 18 位數網路,」Cosmos Labs 在事件分析報告中表示。
該團隊在 8 月 13 日確認,所有 Cosmos EVM 鏈都受到影響,無論其小數位配置如何。隨後,該修復透過公司保留給不會導致生產鏈資金損失問題的公開靜默修補流程進行。
「在此階段,對於已知會威脅生產網路用戶資金的漏洞,團隊通常會使用安全通道將修補程式私下分發給受影響的網路。由於該修補程式已在主分支上公開可用且未被利用,因此團隊認為可以安全地繼續進行靜默修補流程,」Cosmos Labs 表示。
該公司自己發布的靜默修補政策為該類別的缺陷設定了不同的處理方式。
「當問題出現即時或網路範圍的風險時,Cosmos Labs 將在任何公開披露之前啟動緊急緩解措施、私下分發修補程式或協調升級,」Cosmos Labs 在其漏洞獎勵政策中表示,該政策最後一次同步是在 7 月 27 日。
該漏洞存在於協調以太坊虛擬機 (EVM) 狀態與 Cosmos SDK x/bank 模組之間的程式碼中。EVM StateDB 僅追蹤帳戶的可支出餘額,而 SDK 狀態中的歸屬帳戶同時持有可支出和鎖定餘額,x/staking 和 staking 預編譯程式都允許鎖定部分進行委託。
當歸屬帳戶委託的金額超過其可支出餘額時,委託後的寫回操作會從較小的可支出金額中減去全部委託金額。此減法未經檢查,餘額會溢位至大約 2^256。
隨後的協調操作會對正差額進行鑄造,對負差額進行銷毀。攻擊者可以從溢位帳戶中轉移有限的金額,或者向受害者帳戶發送 2^256 減去其餘額的金額,以便協調操作銷毀受害者的真實持有資產。
運行 0.6.x 的鏈會在後端的 SDK 帳本上進行鑄造和銷毀,因此大規模鑄造會導致供應量溢位,進而停止鏈的運行。運行 0.7.x 的鏈直接在 x/bank 中設定餘額,並接受從 uint256 到 int256 轉換後仍然存在的變更。
這兩個部分都在單一交易內運行,淨供應量變化為零,交易來自部署到預先計算地址的合約,該地址首先被轉換為歸屬帳戶。利用此漏洞需要鏈允許無權限創建歸屬帳戶。
建議運行 Cosmos EVM 的營運商採取以下步驟 -
該公告記錄了一個上游變更,即 5 月 15 日合併到主分支的 SubBalance underflow guard(拉取請求 #1176),並於 8 月 13 日向後移植。同一個儲存庫中還有兩個進一步的餘額修復,但文件中並未提及。
拉取請求 #1187,於 5 月 20 日合併,快照了帳戶的鎖定餘額,以便在預編譯程式更改後正確重建銀行餘額。對兩個發行線的 #1187 的向後移植在同一天開啟,並在二十四小時內合併,而同樣會破壞狀態的 #1176 的向後移植則在大約九十天後進行。
提交 3524ebc,標題為「Merge commit from fork」,拒絕任何嘗試設定模組帳戶餘額的操作。
ZetaChain 貢獻者 morde08 在 8 月 21 日發布的所有三個修復的移植版本中表示,挑選的修補程式未能修復分支的線上路徑,因為該分支攜帶了重複的未導出助手,而上游變更僅觸及了導出的助手。
Warden Protocol 兩天後採取了另一種方法,直接阻止了歸屬帳戶的創建。
「歸屬帳戶是 Warden 上鎖定餘額的唯一來源,並且沒有任何東西依賴於用戶能夠創建它們,因此移除該路徑關閉了先決條件,而不是依賴於重建的正確性,」Warden Protocol 貢獻者 jlehtimaki 在提交訊息中表示。
Push Chain 的 Cosmos EVM 分支中的一個公開拉取請求於 8 月 20 日 07:16 UTC 詳細描述了該漏洞及其利用路徑,這是發布版本出來八小時十五分鐘後。
第一次攻擊,針對 MANTRA,發生在十一個小時五十分鐘後,即 19:06 UTC。Cosmos Labs 於 8 月 21 日 03:36 UTC 發送了第一份透過安全電子郵件的私人通知,大約在 MANTRA 報告被利用後兩小時。
「Cosmos Labs 在過去 13 個月內已悄悄發布了 37 個漏洞的修補程式,而下游開發者並未在公開場合精確描述利用路徑,」Cosmos Labs 在事件分析報告中表示。
v0.6.2 和 v0.7.2 的發行說明都指出,該版本包含重要的安全修復,應盡快應用,但兩者都省略了其變更日誌中的安全向後移植。The Hacker News 於 8 月 29 日確認,兩個版本均未列出包含該修復的拉取請求。
Cosmos Labs 表示,他們已知有六個鏈利用了此漏洞。
根據 8 月 19 日的價格,攻擊者在去中心化交易所出售了約 287 萬美元的受影響資產,這是該公司稱由受影響鏈提供的數據,尚未經過獨立審計。根據 Cosmos Labs 基於公開交易量數據的估計,另外 285 萬美元則在中心化交易所出售。
Cosmos 生態系統涵蓋超過 115 個已知的公開區塊鏈,該公司表示沒有其軟體運行網路的完整註冊表,這與 7 月份導致下游供應商修補捆綁文件系統缺陷的相同漏洞有關。
The Hacker News 已聯繫 Cosmos Labs,詢問為何在團隊確認所有鏈都受影響後仍未私下分發修補程式,並將在收到回覆後更新此報導。