整数オーバーフローの脆弱性により、Truebitプロトコルがハッキングされ2,644万米ドルが盗まれる

iconOdaily
共有
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary icon概要

expand icon
2026年1月8日、Truebit Protocolはトークン購入ロジックに存在する整数オーバーフローの脆弱性を悪用されたことで、2,644万米ドル相当の資金が盗まれるハッキングを受けました。攻撃者は0x1446関数の欠陥を悪用し、ループ処理を通じて大きな入力値を操作し、ETHの計算ミスを引き起こしました。この脆弱性は、オーバーフローのチェック機能を持たないSolidity ^0.6.10から生じたものです。この事件はプロトコルのアップデートの必要性を浮き彫りにし、DeFiにおける脆弱性対応の重要性を再認識させます。ExVulセキュリティチームは、古いプロトコルに対するAI駆動型の攻撃が増加する可能性に警鐘を鳴らし、チームに監査の実施とモニタリングの導入を強く呼びかけています。

2026年1月8日、Truebit Protocolがハッキングされ、8,535.36 ETH(約2,644万米ドル)の損失を生じました。Truebit Protocolの公式チームは翌日の早朝にこれを確認する声明を発表しました。ExVulセキュリティチームは今回の攻撃事件について詳細な脆弱性分析を行い、その分析結果は以下の通りです。

攻撃フロー

攻撃者アドレス:

0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50

攻撃トランザクションハッシュ:

0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014

攻撃者は、getPurchasePrice→0xa0296215→0xc471b10b のトランザクションを4ラウンド繰り返し呼び出すことで攻撃を完了させます。ここでは、最初のループを例にとって分析します。

1. 攻撃者はまず getPurchasePrice(240442509453545333947284131) 関数を呼び出し、0 が返されることになります。

2. 攻撃者は msg.value を 0 に設定したまま 0xa0296215(c6e3ae8e2cbab1298abaa3) 関数を呼び出しました。最終的に 240,442,509,453,545,333,947,284131 枚の TRU が正常にマウントされました。

3. 攻撃者は0xc471b10b(c6e3ae8e2cbab1298abaa3)関数を呼び出しました。最終的に240442509453545333947284131枚のTRUを破壊し、5105.06枚のETHを獲得しました。

攻撃ロジック分析

上記の攻撃フローを理解することで、getPurchasePrice 関数と 0xa0296215 関数の論理に問題があることが明確になります。以下では詳細な分析に入ります(契約がオープンソースになっていないため、以下に示すコードはすべてデコンパイルしたコードです)。

2つの関数の共通点を比較することによって、0x1446 関数は指定された数量のTRUを購入するために必要なETHを取得するために使用されていることがわかります。明らかに、0x1446 関数の論理に問題があり、ETHの計算が誤っている原因となっています。以下に、0x1446 関数内の論理を詳しく分析します。

0x1446 関数内のロジックを観察すると、最終的な計算結果が v13 == 0 となるため、上記の計算ロジックに間違いがある可能性が高いです。0x18ef 関数は _SafeMul と同じ機能を持つため、問題はネイティブの加算 v12 + v9 にあります(このコントラクトのバージョンは ^0.6.10 なので、オーバーフローのチェックがありません)。

v12 と v9 はそれぞれ次を表します:

上記の分析を通じて、攻撃者の攻撃の思路は、非常に大きな _amountIn を入力し、v12 + v9 がオーバーフローして非常に小さな値になるようにし、最終的に (v12 + v9) / v6 == 0 となるようにすることです。

要約

Truebit Protocol が今回の攻撃を受けた根本的な原因は、トークン購入価格の計算ロジックに深刻な整数オーバーフローの脆弱性が存在していたことです。スマートコントラクトが使用していた Solidity ^0.6.10 は、重要な算術演算に対してセキュリティチェックを行っておらず、結果として 8,535.36 ETH の大きな損失を生じてしまいました。現在、新しいバージョンの Solidity ではオーバーフローの問題自体が緩和されています。今回の攻撃は、おそらくハッカーがAIを活用して、すでに稼働中の古いDeFiプロトコルを自動的にスキャンし、脆弱性を発見したものです(最近の Balancer や yETH 攻撃も同様の手法です)。我々は、今後こうしたAIを活用した古いDeFiプロトコルへの攻撃がますます増加すると考えています。そのため、プロジェクト側にはスマートコントラクトのコードに対して新たなセキュリティーアウディットを実施し、脆弱性が見つかった場合は速やかにコントラクトのアップグレードまたは資産の移動を行うとともに、チェーン上の監視を徹底し、異常を早期に発見し、損失を最小限に抑えるよう強くお勧めします。

免責事項: 本ページの情報はサードパーティからのものであり、必ずしもKuCoinの見解や意見を反映しているわけではありません。この内容は一般的な情報提供のみを目的として提供されており、いかなる種類の表明や保証もなく、金融または投資助言として解釈されるものでもありません。KuCoinは誤記や脱落、またはこの情報の使用に起因するいかなる結果に対しても責任を負いません。 デジタル資産への投資にはリスクが伴います。商品のリスクとリスク許容度をご自身の財務状況に基づいて慎重に評価してください。詳しくは利用規約およびリスク開示を参照してください。