注目

インシデント / INCIDENTS / BLOCKCHAIN / POST-MORTEM

Cosmos EVMの残高不整合 GHSA-7g4w-cg88-2cq2で6チェーンが被害 — 静かなパッチ運用と公開PRが悪用を招いた経緯をCosmos Labsが公表

Cosmos Labsは2026年8月28日、Cosmos EVMの残高処理の不具合 GHSA-7g4w-cg88-2cq2 が2026年8月20日から25日に6つのブロックチェーンで悪用されたとするポストモーテムを公開した。4月25日のバグバウンティ報告を18小数点網では再現できないとしてサイレントパッチで対応したが、8月13日に全チェーンが影響すると判明した後も公開ブランチでの修正を継続し、8月20日朝に下流フォークで悪用経路が詳細に公開された約12時間後に最初の攻撃が始まった。

攻撃手法

Cosmos Labsは2026年8月28日、共有モジュールCosmos EVMの脆弱性GHSA-7g4w-cg88-2cq2が悪用され、2026年8月20日19:06 UTCから8月25日15:20 UTCの間に6つのブロックチェーンで資金が奪われたとするポストモーテムを公開した。同社は分散型取引所(DEX)で約287万ドル相当、中央集権型取引所(CEX)で約285万ドル相当が売却されたとし、CEX側の口座は当局の捜査に伴い凍結されたと説明している。

何が起きたか — 2つの不具合を1トランザクションで連鎖

攻撃が悪用したのは、Cosmos EVMがEthereum仮想マシン(EVM)の状態とCosmos SDKのx/bankモジュールの残高を整合させる共有コードの不具合だ。Cosmos Labsによると、影響を受けるのはCosmos EVMのv0.6.2未満またはv0.7.2未満を本番で動かしていたチェーンである。

1つ目の不具合は、vestingアカウント(ロックされた残高と使用可能な残高を併せ持つアカウント)がステーキングのprecompile経由で委任する際の処理にある。EVMのStateDBは使用可能な残高だけを追跡するのに対し、SDK側のvestingアカウントはロック分も委任できる。このため、vestingアカウントが使用可能残高を超えてロック分を委任すると、EVM側のSubBalance関数でチェックされないアンダーフローが発生し、残高が約2の256乗(~2^256)へラップする

2つ目の不具合は、この膨張した残高を悪用して被害者アカウントへ送金する処理でオーバーフローを起こす点だ。攻撃者は~2^256トークンを持つ状態で、0x00アドレスやジェネシスで作られたマルチシグのような高残高の被害者アカウントへ2^256 - 被害者残高を送る。検証を通過したうえで被害者側がオーバーフローし、結果として攻撃者が被害者の残高を手にし、被害者は0になる。Cosmos Labsは、攻撃者がこの2段階を悪意あるコントラクトをvestingアカウント上に配置することで、供給量の増減が相殺される単一トランザクションとして連鎖させたと説明している。

バージョン系列による挙動の差も報告されている。0.6.x系はSDK台帳でMint/Burnを使うため大量の鋳造が供給量オーバーフローでチェーン停止を招くのに対し、0.7.x系はx/bankの残高を直接書き換えるためuint256からint256への変換に耐えれば状態変更が受け入れられてしまう。

攻撃者は奪取後、複数のブリッジで他チェーンへ資金を移し、複数の取引所でステーブルコインなどへ交換した。DEXでの売却額の内訳として、Cosmos Labsは影響チェーンから提供された未監査の数値として2,613,674.48 USDT、114.129045 ETH、93.78 TON、1.393618 USDC、98.87 OSMOを挙げている。

タイムライン — 4月の報告から8月の悪用へ評価が変わった

Cosmos Labsが示したタイムラインは、初期評価の誤りと公開での修正運用が悪用までの時間を生んだ経緯を詳述している。

  • 2026年4月25日: バグバウンティプログラム経由で脆弱性が報告される。6小数点のPoCが含まれたが、Cosmos Labsは18小数点網で再現できないとして「本番の資金喪失につながらない」と評価した。
  • 2026年5月15日 13:32 UTC: サイレントパッチとして修正#1176(SubBalanceのアンダーフロー対策)がmainブランチへマージされた。状態を壊す変更のため、すぐにはリリースブランチへバックポートされず、次のマイナーでの協調アップグレードが想定された。
  • 2026年8月13日まで: 別の研究者からの追加報告で、Cosmos Labsは18小数点を含む全チェーンが影響すると確認した。
  • 2026年8月19日 16:49〜23:01 UTC: 既にmainで公開済みで悪用が確認されていないことを理由に、Cosmos Labsは修正を難読化してrelease/v0.6.xrelease/v0.7.xへバックポートし、同日23時台にv0.6.2v0.7.2を公開した。リリースノートはセキュリティ修正に触れるものの緊急性や重大性を明記しなかった。
  • 2026年8月20日 07:16 UTC: 下流のPush Chainフォークで公開プルリクエストpushchain/push-chain-evm#40が脆弱性と悪用経路を詳細に記述し、影響するタグの表とともに公開された。Hacken監査に帰属すると記され、v0.6.2/v0.7.2への言及はなかった。
  • 2026年8月20日 19:06 UTC: 最初の攻撃がMANTRAで発生した。公開PRから約11時間50分後だった。MANTRAは同日23:13 UTCに停止し、翌21日03:36 UTCにCosmos Labsが既知のCosmos EVMチェーンへ非公開のセキュアメールでv0.6.2/v0.7.2への更新を通知した。
  • 2026年8月22日 19:46 UTC以降: TACとKiiChainでも同手口の攻撃が確認され、Cosmos Labsは全利用者へ即時停止を推奨する通知をメーリングリストとSlackへ再送した。

Cosmos Labsは、この間にセキュアな連絡先を登録していなかった11のCosmos EVMデプロイを新たに把握し、最終的に40チェーンと調整してパッチ適用や停止などの緩和を進めたとしている。なお、ある1チェーンは攻撃者が資金を引き出す前に停止し被害を食い止めたという。

影響範囲とCosmos Labsが示した対応

Cosmos Labsは、攻撃者がDEXで約287万ドル、CEXで約285万ドルを売却したと推計し、CEX側の口座は凍結済みだと述べている。数字は影響チェーンの提供と公開オンチェーンデータに基づく推計で、独立監査は受けていないと明記している。13の潜在的に露出した他のネットワークとは、被害を出さずにパッチや停止で対処できたとしている。

同社は、今回の事案が「CMSソフトウェアがオープンソースで許可なく誰でもデプロイできるため、Cosmos Labsが全デプロイを正確に把握できない」というエコシステム構造の課題を露わにしたと説明した。Cosmos EVMは事前にSherlockによる外部監査(2025年7月レポート)やバグバウンティの対象となっていたが、今回の経路は監査で発見されなかったという。

対策として、Cosmos Labsは次の点を挙げている。

  • 報告内容を超えて脆弱性の影響範囲が拡大していないかを検出するトリアージの強化
  • 調整された脆弱性開示(CVD)チャネルの周知と、開発者の応答性を定期的に検証するヘルスチェックの実施
  • 公開のサイレントパッチと非公開での配布をいつ使い分けるか、チェーン停止を推奨する基準を含めた公開基準の明確化
  • 外部専門家と連携した運用セキュリティ全体の監査

Cosmos Labsは「資金を脅かす脆弱性は通常、セキュアな非公開チャネルでパッチを配布する運用だが、今回は既にmainで公開済みで悪用が確認されていないとしてサイレントパッチの継続を判断した」と経緯を説明しつつ、「37件の脆弱性をこの13か月でサイレントに公開してきたが、下流開発者が悪用経路をここまで正確に公開したのは極めて異例だった」と述べ、潜在的な脆弱性はImmunefiのCosmosバグバウンティ経由での調整された開示を求めている。

利用者側では、Cosmos EVMを動かすチェーンの運営者はv0.6.2またはv0.7.2への更新が提供されているかを確認し、Cosmos Labsのセキュリティ連絡先登録フォームへの登録と[email protected]への連絡で非公開通知を受け取れる体制を整えることが、Cosmos Labsが推奨する対応である。

出典

この記事は、公開情報と編集部の調査・知見をもとに構成しています。内容は公開時点の情報に基づく解説であり、個別の環境への診断・対応を保証するものではありません。重要な判断では、記事内の出典や各提供元の最新情報もご確認ください。