Le 8 janvier 2026, au bloc Ethereum 24,191,019, le token TRU de Truebit s'est effondré après qu'une transaction a forcé le prix d'achat du protocole à zéro. Cette seule condition a permis un minting illimité et une sortie rapide vers l'ETH. Plus de détails suivent.
L'attaquant a appelé getPurchasePrice, puis buyTRU (0xa0296215), a minté plus de TRU que l'offre totale, a répété le cycle, puis a vendu via sellTRU. Le coût total était inférieur à 40 $, et la transaction a rapporté 8 535 ETH (environ 26 millions de dollars).
Seul le proxy du token TRU a été vérifié dans Sourcify, compilé avec Solidity 0.5.3. Cette époque précède les vérifications de débordement intégrées et de nombreuses fonctionnalités de sécurité. Un ancien code peut fonctionner pendant des années, puis échouer lorsqu'un seul cas limite rencontre une meilleure analyse.
Nous avons décompilé le contrat d'achat non vérifié et suivi getPurchasePrice dans une fonction interne (0x1446) qui calcule le prix à partir de l'offre S, de la réserve R et de THETA (75 à l'époque). Des helpers de mathématiques sécurisées ont été utilisés tout au long du chemin.
Le point de défaillance était l'expression finale : v13 = _SafeDiv(v6, v12 + v9). Cette addition n'était pas vérifiée, et Solidity 0.5.3 ne revient pas en arrière en cas de dépassement. Avec une entrée suffisamment grande, cela a débordé et la division entière a renvoyé zéro.
Notre article complet couvre la cause profonde et les leçons pour les systèmes hérités :
5,07K