原文タイトル:「Truebit Protocol 26,440,000ドルの契約脆弱性攻撃分析」
原文出典:ExVul Security
2026年1月8日、Truebit Protocolプロトコルはハッカーによる攻撃を受け、8,535.36 ETH(約26,440,000ドル)の損失を被りました。Truebit Protocol公式は翌日未明に声明を出し、ExVulセキュリティチームがこの攻撃事件を詳細に分析し、以下の結果が得られました:
攻撃者のアドレス:
0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50
攻撃トランザクションハッシュ:
0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
攻撃者は、getPurchasePrice→0xa0296215→0xc471b10bのトランザクションを4回ループして攻撃を完了しました。第1回のループを例に分析します。
1. 攻撃者は最初にgetPurchasePrice(240442509453545333947284131)関数を呼び出し、0を返します。

2. 攻撃者は0xa0296215(c6e3ae8e2cbab1298abaa3)関数を呼び出し、同時にmsg.valueは0です。最終的に240442509453545333947284131 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 プロトコルへの攻撃イベントが今後増加する傾向にあると考えており、したがって、プロジェクトチームにはコントラクトコードに新しいセキュリティレビューを実施することをお勧めし、脆弱性が見つかった場合はすぐにコントラクトをアップグレードしたり資産を移動したりし、オンチェーンモニタリングを行い、異常を早期に発見して損失を最小限に抑えるよう努めることをお勧めします。
本文は投稿から転載されており、BlockBeats の見解を反映しているわけではありません。
BlockBeats の公式コミュニティに参加しよう:
Telegram 公式チャンネル:https://t.me/theblockbeats
Telegram 交流グループ:https://t.me/BlockBeats_App
Twitter 公式アカウント:https://twitter.com/BlockBeatsAsia