Platypus-aanval maakte gebruik van onjuiste volgorde van code, beweert auditor

Disclaimer: het artikel is bijgewerkt om aan te geven dat Omniscia geen versie van het MasterPlatypusV4-contract heeft gecontroleerd. In plaats daarvan controleerde het bedrijf een versie van het MasterPlatypusV1-contract van 21 november tot 5 december 2021.

De Platypus-flitsleningaanval van $ 8 miljoen werd mogelijk gemaakt door code die in de verkeerde volgorde stond, volgens naar een autopsierapport van Platypus-auditor Omniscia. Het auditbedrijf beweert dat de problematische code niet bestond in de versie die ze hebben gecontroleerd.

Volgens het rapport bevatte het Platypus MasterPlatypusV4-contract "een fatale misvatting in het mechanisme voor noodterugtrekking", waardoor het "zijn solvabiliteitscontrole uitvoerde voordat de LP-tokens die aan de inzetpositie waren gekoppeld, werden bijgewerkt".

Het rapport benadrukte dat de code voor de emergencyWithdraw-functie alle noodzakelijke elementen bevatte om een ​​aanval te voorkomen, maar deze elementen waren gewoon in de verkeerde volgorde geschreven, zoals Omniscia uitlegde:

"Het probleem had kunnen worden voorkomen door de MasterPlatypusV4::emergencyWithdraw-verklaringen opnieuw te ordenen en de solvabiliteitscontrole uit te voeren nadat het bedrag van de gebruiker op 0 was gezet, waardoor de aanval niet had kunnen plaatsvinden."

Omniscia controleerde een versie van het MasterPlatypusV1-contract van 21 november tot 5 december 2021. Deze versie "bevatte echter geen integratiepunten met een extern platypusTreasure-systeem" en bevatte daarom niet de verkeerd geordende coderegels.

Het is belangrijk op te merken dat de misbruikte code niet bestond op het moment van Omniscia's audit. Omniscia's standpunt houdt in dat de ontwikkelaars op enig moment na de audit een nieuwe versie van het contract moeten hebben geïmplementeerd.

Zie ook: Raydium kondigt details van hack aan, stelt compensatie voor slachtoffers voor

De auditor beweert dat de contractimplementatie op Avalanche C-Chain-adres 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 degene is die was Exploited. Regels 582-584 van dit contract lijken een functie genaamd "isSolvent" op het PlatypusTreasure-contract aan te roepen, en regels 599-601 lijken het bedrag, de factor en de beloning van de gebruiker op nul te zetten. Deze bedragen worden echter op nul gezet nadat de functie "isSolvent" al is aangeroepen.

Het Platypus-team bevestigd op 16 februari dat de aanvaller misbruik maakte van een "fout in [het] USP-solvabiliteitscontrolemechanisme", maar het team gaf aanvankelijk geen verdere details. Dit nieuwe rapport van de auditor werpt verder licht op hoe de aanvaller de exploit mogelijk heeft kunnen uitvoeren.

Het Platypus-team kondigde op 16 februari aan dat de aanval had plaatsgevonden. Het heeft geprobeerd contact op te nemen met de hacker en het geld terug te krijgen in ruil voor een bugbounty. De aanvaller flitste leningen gebruikt om de exploit uit te voeren, wat vergelijkbaar is met de strategie die wordt gebruikt in de Defrost Finance-misbruik op 25 december 2022.