Rubriques tendance
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Bienvenue dans le Spotlight sur les Vulnérabilités de Sherlock ! Chaque semaine, nous mettrons en avant une vulnérabilité impactante que nos chercheurs ont découverte lors d'un audit Sherlock.
Cette semaine, nous avons une retrait excessif dû à une mauvaise configuration.
Il a été trouvé par @bin2chen, @TheCHADuke, iglyx, @tapired, @xiaoming9090 et @0xleastwood lors du concours @NotionalFinance V3.

Si le currentBalance est de 999 900 USDC et que le withdrawAmountExternal est de 1 000 000 USDC, alors il y a un solde insuffisant dans le contrat, et des fonds supplémentaires doivent être retirés du marché monétaire (par exemple, Compound).

Puisque le contrat a déjà 999 900 USDC, il ne reste qu'à retirer 100 USDC supplémentaires du marché monétaire pour satisfaire la demande de retrait de 1 000 000 USDC.
Cependant, au lieu de retirer 100 USDC du marché monétaire, Notional retire 1 000 000 USDC du marché conformément à la fonction oracle.getRedemptionCalldata(withdrawAmountExternal). En conséquence, un excès de 999 900 USDC est retiré du marché monétaire.
Quel est l'impact ?
Cela a conduit à un excès d'actifs inactifs dans Notional, ne générant aucun rendement ni intérêt sur le marché monétaire, ce qui a entraîné une perte de rendement significative pour les utilisateurs, car ils recevaient un taux d'intérêt inférieur à celui attendu et subissaient une perte d'opportunité.
Les attaquants pourraient potentiellement abuser de cela pour retirer les fonds que Notional a investis dans le marché monétaire, entraînant des griefs et une perte stupéfiante de rendements/intérêts pour le protocole.
La solution :
Essentiellement, avant la correction, le code disait à l'oracle : "Préparez les étapes pour retirer tout ce que l'utilisateur veut du marché monétaire."
Alors qu'il aurait dû dire : "Ne tirez que ce qui nous manque du marché monétaire."

Après la correction, pour l'exemple précédent, les 999 900 USDC déjà détenus par le contrat restent intacts et continuent à générer des rendements, améliorant l'efficacité et préservant les retours pour tous les utilisateurs.
Cette vulnérabilité provenait d'un subtil défaut de logique dans la manière dont les montants de retrait étaient calculés et transmis. En négligeant le solde existant du contrat, le système a inutilement tiré des fonds excessifs du marché monétaire, entraînant une inefficacité du capital et une perte de rendement.
Nous sommes fiers d'avoir contribué à sécuriser Notional grâce à cette découverte. Quand il faut absolument être sécurisé, Sherlock est le bon choix.
2,84K
Meilleurs
Classement
Favoris