Pada 8 Januari 2026, protokol Truebit Protocol diserang peretas, mengakibatkan kerugian sebesar 8.535,36 ETH (sekitar 26,44 juta dolar AS). Pihak resmi Truebit Protocol mengonfirmasi kejadian ini melalui unggahan pada pagi harinya. Tim keamanan ExVul melakukan analisis rinci terhadap kejadian serangan ini, dan hasil analisisnya adalah sebagai berikut:
Alur Serangan
Alamat pelaku serangan:
0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50
Hash transaksi serangan:
0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
Pelaku menyelesaikan serangan dengan melakukan transaksi yang memanggil getPurchasePrice→0xa0296215→0xc471b10b sebanyak 4 putaran. Mari kita analisis contoh dari putaran pertama.
1. Pelaku serangan terlebih dahulu memanggil fungsi getPurchasePrice(240442509453545333947284131), mengembalikan 0.

2. Penyerang memanggil fungsi 0xa0296215(c6e3ae8e2cbab1298abaa3) dengan msg.value sebesar 0. Pada akhirnya, penyerang berhasil memintal 240442509453545333947284131 token TRU.

3. Pelaku mengeksekusi fungsi 0xc471b10b(c6e3ae8e2cbab1298abaa3). Pada akhirnya, 240442509453545333947284131 token TRU dihancurkan, dan mendapatkan 5105,06 ETH.
Analisis Logika Serangan
Dengan memahami alur serangan di atas, jelas terlihat bahwa terdapat masalah pada logika fungsi getPurchasePrice dan fungsi 0xa0296215. Selanjutnya akan dilakukan analisis lebih lanjut (karena kontrak tidak open source, kode di bawah ini adalah kode hasil dekompilasi).


Dengan membandingkan kesamaan dari kedua fungsi tersebut, kita dapat menemukan bahwa fungsi 0x1446 digunakan untuk menghitung berapa banyak ETH yang diperlukan untuk membeli jumlah tertentu dari TRU. Jelas bahwa terdapat masalah logika pada fungsi 0x1446, yang menyebabkan kesalahan perhitungan ETH. Berikut adalah analisis rinci mengenai logika di dalam fungsi 0x1446.

Perhatikan logika dalam fungsi 0x1446, karena hasil perhitungan akhir v13 == 0, maka pasti ada masalah dalam logika perhitungan di atasnya. Perlu diketahui bahwa fungsi 0x18ef memiliki fungsi yang sama dengan _SafeMul, sehingga masalahnya terletak pada penggunaan penjumlahan asli v12 + v9 (versi kontrak adalah ^0.6.10, sehingga tidak ada pemeriksaan overflow).
v12 dan v9 masing-masing menunjukkan:

Berdasarkan analisis di atas, pendekatan serangan penyerang adalah dengan memasukkan _amountIn yang sangat besar, sehingga v12 + v9 meluber menjadi nilai yang sangat kecil, akhirnya membuat (v12 + v9) / v6 == 0.
Ringkasan
Penyebab utama serangan terhadap Truebit Protocol adalah adanya kerentanan serius berupa integer overflow (kelebihan kapasitas bilangan bulat) dalam logika perhitungan harga pembelian token. Karena kontrak menggunakan versi Solidity ^0.6.10 dan tidak melakukan pemeriksaan keamanan terhadap operasi aritmatika penting, akhirnya mengakibatkan kerugian besar sebesar 8.535,36 ETH. Saat ini, versi Solidity terbaru sendiri sudah mengurangi risiko kerentanan overflow. Serangan ini kemungkinan dilakukan oleh peretas yang menggunakan AI secara otomatis untuk memindai beberapa protokol DeFi lama yang sudah berjalan (termasuk serangan Balancer dan yETH beberapa waktu lalu). Kami percaya bahwa insiden serangan semacam ini yang memanfaatkan AI untuk menyerang protokol DeFi lama akan semakin meningkat dalam beberapa waktu ke depan. Oleh karena itu, kami menyarankan pihak proyek untuk melakukan audit keamanan ulang terhadap kode kontraknya. Jika ditemukan kerentanan, segera lakukan pembaruan kontrak atau transfer aset, serta lakukan pemantauan terhadap aktivitas di blockchain agar dapat segera mendeteksi kejanggalan dan meminimalkan kerugian.

