Un auditor afirma que el atacante de Platypus se aprovechó de un orden incorrecto del código

El ataque de USD 8 millones al préstamo flash de Platypus fue posible gracias a un código que estaba mal ordenado, según un informe post mortem de la auditora de Platypus, Omniscia. La empresa auditora afirma que el código problemático no existía en la versión que vieron.

Según el informe, el contrato Platypus MasterPlatypusV4 “contenía un error fatal en su mecanismo emergencyWithdraw” que le hacía realizar “su comprobación de solvencia antes de actualizar los tokens LP asociados a la posición de staking”.

El informe destacaba que el código de la función emergencyWithdraw tenía todos los elementos necesarios para evitar un ataque, pero estos elementos simplemente estaban escritos en el orden equivocado, según explicaba Omniscia:

“El problema podría haberse evitado reordenando las sentencias de MasterPlatypusV4::emergencyWithdraw y realizando la comprobación de solvencia después de que la entrada de importe del usuario se hubiera puesto a 0, lo que habría impedido que se produjera el ataque”.

Omnisia admitió que auditó una versión del contrato MasterPlatypusV4 del 21 de noviembre al 5 de diciembre de 2021. Sin embargo, esta versión “no contenía puntos de integración con un sistema externo de platypusTreasure” y, por tanto, no contenía las líneas de código desordenadas. Desde el punto de vista de Omniscia, esto implica que los desarrolladores deben haber desplegado una nueva versión del contrato en algún momento posterior a la realización de la auditoría.

El auditor afirma que la implementación del contrato en la dirección 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 de Avalanche (AVAX) C-Chain es la que fue explotada. Las líneas 582-584 de este contrato parecen llamar a una función llamada “isSolvent” en el contrato PlatypusTreasure, y las líneas 599-601 parecen poner a cero el importe, factor y rewardDebt del usuario. Sin embargo, estas cantidades se ponen a cero después de que se haya llamado a la función “isSolvent”.

El equipo de Platypus confirmó el 16 de febrero que el atacante explotó un “fallo en [el] mecanismo de comprobación de solvencia de USP”, pero el equipo no proporcionó inicialmente más detalles. Este nuevo informe del auditor arroja más luz sobre la forma en que el atacante puede haber sido capaz de lograr el exploit.

El equipo de Platypus anunció el 16 de febrero que se había producido el ataque. Ha intentado ponerse en contacto con el hacker y conseguir la devolución de los fondos a cambio de una recompensa por el fallo. El atacante utilizó préstamos flash para realizar el exploit, que es similar a la estrategia utilizada en el exploit Defrost Finance del 25 de diciembre.

Aclaración: La información y/u opiniones emitidas en este artículo no representan necesariamente los puntos de vista o la línea editorial de Cointelegraph. La información aquí expuesta no debe ser tomada como consejo financiero o recomendación de inversión. Toda inversión y movimiento comercial implican riesgos y es responsabilidad de cada persona hacer su debida investigación antes de tomar una decisión de inversión.

Las inversiones en criptoactivos no están reguladas. Es posible que no sean apropiados para inversores minoristas y que se pierda el monto total invertido. Los servicios o productos ofrecidos no están dirigidos ni son accesibles a inversores en España.