L’attaque de prêt flash Platypus de 8 millions de dollars a été rendue possible grâce à un code qui n’était pas dans le bon ordre, selon à un rapport post mortem de l’auditeur de Platypus Omniscia. La société d’audit affirme que le code problématique n’existait pas dans la version qu’elle a vue.
À la lumière des récents @Platypusdefi l’incident https://t.co/30PzcoIJnt a préparé une analyse technique post-mortem décrivant comment l’exploit s’est déroulé dans les moindres détails.
Assurez-vous de suivre @Omniscia_sec pour recevoir plus de mises à jour de sécurité !https://t.co/cf784QtKPK pic.twitter.com/egHyoYaBhn
— Omniscia (@Omniscia_sec) 17 février 2023
Selon le rapport, le contrat Platypus MasterPlatypusV4 “contenait une idée fausse fatale dans son mécanisme de retrait d’urgence”, qui l’obligeait à effectuer “son contrôle de solvabilité avant de mettre à jour les jetons LP associés à la position de participation”.
Le rapport soulignait que le code de la fonction emergencyWithdraw contenait tous les éléments nécessaires pour empêcher une attaque, mais ces éléments étaient simplement écrits dans le mauvais ordre, comme l’a expliqué Omniscia :
“Le problème aurait pu être évité en réordonnant les instructions MasterPlatypusV4::emergencyWithdraw et en effectuant le contrôle de solvabilité après que l’entrée du montant de l’utilisateur ait été définie sur 0, ce qui aurait interdit l’attaque.”
Omnisia a admis avoir audité une version du contrat MasterPlatypusV4 du 21 novembre au 5 décembre 2021. Cependant, cette version “ne contenait aucun point d’intégration avec un système platypusTreasure externe” et ne contenait donc pas les lignes de code mal ordonnées. Le point de vue d’Omniscia implique que les développeurs doivent avoir déployé une nouvelle version du contrat à un moment donné après la réalisation de l’audit.
En rapport: Raydium annonce les détails du piratage et propose une indemnisation pour les victimes
L’auditeur affirme que la mise en œuvre du contrat à l’adresse Avalanche C-Chain 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 est celle qui a été exploité. Les lignes 582 à 584 de ce contrat semblent appeler une fonction appelée “isSolvent” sur le contrat PlatypusTreasure, et les lignes 599 à 601 semblent définir le montant, le facteur et la récompense de la dette de l’utilisateur à zéro. Cependant, ces quantités sont mises à zéro après que la fonction “isSolvent” ait déjà été appelée.
L’équipe Platypus confirmé le 16 février que l’attaquant a exploité une “défaut dans [the] Mécanisme de contrôle de solvabilité USP », mais l’équipe n’a initialement pas fourni plus de détails. Ce nouveau rapport de l’auditeur apporte un éclairage supplémentaire sur la façon dont l’attaquant a pu accomplir l’exploit.
L’équipe Platypus a annoncé le 16 février que le l’attaque avait eu lieu. Il a tenté de contacter le pirate informatique et de récupérer les fonds en échange d’une prime de bogue. L’attaquant prêts flashés utilisés pour effectuer l’exploit, qui est similaire à la stratégie utilisée dans le Exploitation de Defrost Finance le 25 décembre 2022.