一個計算漏洞,讓 Truebit 被盜 8535 枚 ETH
BlockBeats 律動財經
2026 年 1 月 8 日,Truebit Protocol 協議遭到黑客攻擊,損失 8,535.36 ETH(約 2644 萬美元),Truebit Protocol 官方於次日凌晨發文證實。ExVul 安全團隊對本次攻擊事件進行了詳細的漏洞分析,分析結果如下:
攻擊流程
攻擊者地址:
0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50
攻擊交易 hash:
0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
攻擊者通過循環 4 輪調用 getPurchasePrice→0xa0296215→0xc471b10b 的交易完成攻擊,以第一次循環為例分析。
1. 攻擊者先調用 getPurchasePrice(240442509453545333947284131) 函數,返回 0。
2. 攻擊者調用 0xa0296215(c6e3ae8e2cbab1298abaa3) 函數,同時 msg.value 為 0。最後成功鑄造 240442509453545333947284131 枚 TRU。
3. 攻擊者調用 0xc471b10b(c6e3ae8e2cbab1298abaa3) 函數。最後銷毀 240442509453545333947284131 枚 TRU,獲得 5105.06 枚 ETH。
攻擊邏輯分析
通過了解上述攻擊流程,能明顯發現 getPurchasePrice 函數與 0xa0296215 函數的邏輯存在問題。下面開始深入分析(由於合約未開源,下面的代碼均為反編譯代碼)。
通過比較兩個函數的共同點,我們可以發現 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 協議的攻擊事件近期會越來越多,所以建議專案方對合約代碼能進行新的安全審計,如果發現漏洞,需盡快升級合約或者進行資產轉移,並且做好鏈上監控,及時發現異常,把損失降到最低。
發佈者對本文章的內容承擔全部責任
在投資加密貨幣前,請務必深入研究,理解相關風險,並謹慎評估自己的風險承受能力。不要因為短期高回報的誘惑而忽視潛在的重大損失。
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與加密貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 延伸:一堂從配置角度看懂幣圈的入門講座
- 掌握全球財經資訊點我下載APP
延伸閱讀
- 比特幣錯過聖誕行情!散戶巨鯨對立 突破就在下週?
- 美股聖誕行情發酵、黃金發光!比特幣卻沒跟上
- 財富轉移最後機會:山寨幣技術壓縮極限已至 2026年1月大暴漲倒數計時
- 89%亞洲富人已佈局加密貨幣:資金全面轉向長期保值與投資百倍幣
- 講座
- 公告
上一篇
下一篇