L'8 gennaio 2026, al blocco Ethereum 24.191.019, il token TRU di Truebit è crollato dopo che una transazione ha costretto il prezzo di acquisto del protocollo a zero. Quella singola condizione ha abilitato la coniazione illimitata e un rapido passaggio a ETH. Ulteriori dettagli seguono.
L'attaccante ha chiamato getPurchasePrice, poi buyTRU (0xa0296215), ha coniato più TRU della fornitura totale, ha ripetuto il ciclo, poi ha venduto tramite sellTRU. Il costo totale è stato inferiore a $40, e la transazione ha restituito 8.535 ETH (circa $26M).
Solo il proxy del token TRU è stato verificato in Sourcify, compilato con Solidity 0.5.3. Quell'era precede i controlli di overflow integrati e molte funzionalità di sicurezza. Il codice vecchio può funzionare per anni, per poi fallire quando un singolo caso limite incontra un'analisi migliore.
Abbiamo decompilato il contratto di acquisto non verificato e tracciato getPurchasePrice in una funzione interna (0x1446) che calcola il prezzo in base all'offerta S, alla riserva R e a THETA (75 al momento). Sono stati utilizzati helper di safe math lungo gran parte del percorso.
Il punto di fallimento era l'espressione finale: v13 = _SafeDiv(v6, v12 + v9). Quell'addizione non era controllata, e Solidity 0.5.3 non annulla in caso di overflow. Con un input sufficientemente grande, si è avvolto e la divisione intera ha restituito zero.
Il nostro articolo completo tratta la causa principale e le lezioni per i sistemi legacy:
5,49K