Orijinal Metin Başlığı: "Truebit Protokolü 26.44 Milyon Dolarlık Sözleşme Açığıyla Soyuldu Analizi"
Orijinal Kaynak: ExVul Güvenlik
8 Ocak 2026 tarihinde, Truebit Protokolü bir hacker saldırısına uğradı ve 8,535.36 ETH (yaklaşık 26.44 milyon dolar) kaybetti, resmi Truebit Protokolü açıklaması ertesi gün sabaha karşı yapıldı. ExVul Güvenlik ekibi bu saldırı olayını detaylı bir şekilde inceledi ve açık analizi aşağıdaki gibidir:
Saldırgan Adresi:
0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50
Saldırı İşlemi Hash:
0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
Saldırgan, saldırıyı tamamlamak için getPurchasePrice→0xa0296215→0xc471b10b döngüsünü 4 tur boyunca çağıran işlemi gerçekleştirmiştir, ilk döngüyü ele alalım.
1. Saldırgan önce getPurchasePrice(240442509453545333947284131) işlemini çağırır, sonuç olarak 0 döner.

2. Saldırgan, 0xa0296215(c6e3ae8e2cbab1298abaa3) işlemini çağırırken aynı zamanda msg.value değeri 0 olarak ayarlanmıştır. Sonuç olarak 240442509453545333947284131 adet TRU jetonu yaratmayı başarır.

3. Saldırgan, 0xc471b10b(c6e3ae8e2cbab1298abaa3) işlemini çağırır. Sonuç olarak 240442509453545333947284131 adet TRU jetonunu yok eder ve karşılığında 5105.06 adet ETH alır.
Yukarıdaki saldırı sürecini anladığınızda, getPurchasePrice fonksiyonu ile 0xa0296215 fonksiyonu arasında mantık açığı olduğu açıkça görülecektir. Aşağıda, bu açığın ayrıntılı analizine başlayacağız (sözleşme açık kaynaklı olmadığından, aşağıdaki kodlar tersine mühendislik ile elde edilmiştir).


İki fonksiyonun ortak noktalarını karşılaştırarak, belirli bir miktarda TRU satın almak için gereken ETH miktarını hesaplamak için 0x1446 fonksiyonunun kullanıldığını görebiliriz. Açıkça 0x1446 fonksiyonu mantıksal bir hata içermekte olup ETH hesaplamasını yanlış yapmaktadır. Aşağıda 0x1446 fonksiyonundaki mantığı detaylı olarak inceleyeceğiz.

0x1446 fonksiyonundaki mantığı gözlemlediğimizde, çünkü sonuçta v13 değeri == 0 olduğundan, yukarıda yer alan hesaplama mantığında bir sorun olduğu kesindir. Bilinmesi gereken şey, 0x18ef işlevinin _SafeMul ile aynı olduğudur, dolayısıyla sorun, temel toplama işlemi v12 + v9'un kullanılmasından kaynaklanmaktadır (sözleşme sürümü ^0.6.10 olduğundan taşma kontrolü yoktur).
v12 ve v9 sırasıyla şunları temsil etmektedir:
Yukarıdaki analizden hareketle, saldırganın saldırı stratejisi, v12 + v9'un büyük bir _amountIn girdisi ile taşması sonucu sonucun çok küçük bir değere dönüşmesini sağlamak ve nihayetinde (v12 + v9) / v6 == 0 olmasını sağlamaktır.
Truebit Protocol'ün bu saldırı olayının temel sebebi, jeton satın alma fiyatı hesaplama mantığında ciddi bir tamsayı taşma açığı bulunmasıdır. Sözleşmenin Solidity ^0.6.10 sürümünü kullandığı ve kritik aritmetik işlemleri güvenliği kontrol etmediği için 8,535,36 ETH'lik büyük bir zarara neden olmuştur. Şu anda yeni Solidity sürümü taşma açıklarını hafifletmiştir. Bu saldırı olayının, hackerların otomatik AI taramalarını kullanarak çevrimiçi olan bazı eski DeFi protokollerindeki açıkları keşfettikleri bir senaryo olarak görüyoruz (geçmişteki Balancer ve yETH saldırıları da dahil). Bizce, AI'nın kullanımının bu tür eski DeFi protokollerine saldırı olaylarının yakın gelecekte artacağına inanıyoruz; bu nedenle projelerin sözleşme kodlarını yeniden güvenlik denetiminden geçirmeleri, açıklar bulunursa acilen sözleşmeleri güncellemeleri veya varlıkları transfer etmeleri, ayrıca zincirde izleme yaparak anormallikleri zamanında tespit etmeleri ve zararı en aza indirmeleri önerilir.
Bu yazı bir katkı yazısıdır ve BlockBeats'in görüşlerini yansıtmamaktadır.
BlockBeats Resmi Topluluğuna Katılın:
Telegram Abonelik Grubu: https://t.me/theblockbeats
Telegram Sohbet Grubu: https://t.me/BlockBeats_App
Twitter Resmi Hesabı: https://twitter.com/BlockBeatsAsia