Quelqu'un vient de voler 142K $ à Scallop de
$SUI sans aucune compétence en hacking.
Pas de génie des flash loans.
Pas de manipulation d'oracle.
Pas d'exploitation de code.
Juste... un vieux contrat que personne ne surveillait. 👀
Voici comment ça s'est passé 👇
#scallop fonctionne sur
#sui 💧
Il a un pool de récompenses pour les stakers de sSUI.
Ils ont mis à niveau leurs contrats il y a longtemps.
Mais le vieux V2 ?
Il est toujours sur la chaîne.
Toujours appelable.
Oublié — mais pas mort.
Sur
#SUI🔥 , les contrats déployés sont immuables.
Tu ne peux pas les supprimer.
Tu ne peux pas les éteindre.
Ils... existent juste pour toujours.
L'attaquant a trouvé le V2 de novembre 2023 — âgé de 17 mois — et l'a appelé directement.
Pas de front-end. Pas de SDK. Appel de contrat direct.
Le bug était embarrassant de simplicité :
Chaque nouveau compte de staking devait enregistrer un last_index — le timestamp de quand quelqu'un a commencé.
Dans l'ancien V2, cela n'avait jamais été initialisé.
Donc le contrat supposait que quelqu'un était là depuis
#staking depuis le premier jour.
L'index de spool avait fonctionné pendant 20 mois.
Il a atteint 1,19 milliard.
L'attaquant a staké 136K sSUI.
Le contrat a calculé 162 trillions de points de récompense.
Le pool avait 150 000 SUI à un taux de 1:1.
Une transaction. Tout disparu.
Scallop a gelé le contrat.
A couvert 100 % des pertes.
A repris en moins de 2 heures.
Mais voici ce qui me hante :
L'attaquant a ensuite contacté et proposé de rendre 80 % pour une prime.
Ce qui signifie qu'ils n'essayaient même pas de se cacher.
Ils sont entrés par la porte d'entrée d'une maison vide dont personne ne se souvenait qu'elle appartenait.
Ce n'est pas un "problème de
$SUI ."
C'est un problème d'architecture de
#defi .
Combien de vieux contrats sont assis sur ton protocole préféré en ce moment ?🫵
Audité une fois.
Mis à niveau.
Oublié.
Toujours vivant sur la chaîne.
Les hacks les plus effrayants ne sont pas sophistiqués.
Ils sont patients.