En mars 2022, le protocole de rendement BNB Chain Paraluni a perdu environ 1,7 million de dollars. Sa fonction de dépôt acceptait un jeton non validé fourni par l'utilisateur et manquait de protection contre la réentrance ; le callback de transfert d'un faux jeton a réintroduit la logique de dépôt, créant des parts excédentaires que l'attaquant a rachetées.
Ce qui s'est passé
Le chemin de style depositByAddLiquidity de Paraluni faisait confiance aux adresses de jetons fournies par l'appelant et n'avait aucune garde de réentrance. Un jeton malveillant a réintroduit au milieu du dépôt, gonflant le solde de parts de l'attaquant, qui a été racheté contre de vrais actifs (~1,7 M$).
Pourquoi c'est important
Paraluni est le bug composé faux jeton + réentrance (Akropolis, Grim Finance, Orion Protocol) — deux primitives manquantes (liste d'autorisation de jeton + nonReentrant) qui sont individuellement survivables et conjointement un vidage complet. En mars 2022, ce composé exact avait été démontré pendant plus d'un an sur plusieurs chaînes ; Paraluni l'a quand même livré. C'est l'un des points de données les plus purs du catalogue de « la correction est deux one-liners bien connus, librement disponibles et ignorés ».
Sources & preuves on-chain
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-paraluni-hack-march-2022
- [02]rekt.newshttps://rekt.news/paraluni-rekt