Isenção de responsabilidade: o artigo foi atualizado para refletir que a Omniscia não auditou uma versão do contrato MasterPlatypusV4. Em vez disso, a empresa auditou uma versão do contrato MasterPlatypusV1 de 21 de novembro a 5 de dezembro de 2021.
O ataque de empréstimo flash Platypus de US$ 8 milhões foi possível devido ao código que estava na ordem errada, segundo a um relatório post-mortem do auditor Platypus Omniscia. A empresa de auditoria afirma que o código problemático não existia na versão auditada.
À luz da recente @Platypusdefi incidente o https://t.co/30PzcoIJnt A equipe preparou uma análise técnica post-mortem descrevendo como a exploração foi revelada em grandes detalhes.
Certifique-se de seguir @Omniscia_sec para receber mais atualizações de segurança!https://t.co/cf784QtKPK pic.twitter.com/egHyoYaBhn
- Omniscia (@Omniscia_sec) 17 de fevereiro de 2023
De acordo com o relatório, o contrato Platypus MasterPlatypusV4 “continha um equívoco fatal em seu mecanismo de retirada de emergência”, que o fazia realizar “sua verificação de solvência antes de atualizar os tokens LP associados à posição de participação”.
O relatório enfatizou que o código para a função EmergencyWithdraw tinha todos os elementos necessários para prevenir um ataque, mas esses elementos foram simplesmente escritos na ordem errada, como explicou Omniscia:
“O problema poderia ter sido evitado reordenando as declarações MasterPlatypusV4::emergencyWithdraw e executando a verificação de solvência após a entrada do valor do usuário ter sido definida como 0, o que teria proibido o ataque de ocorrer.”
A Omniscia auditou uma versão do contrato MasterPlatypusV1 de 21 de novembro a 5 de dezembro de 2021. No entanto, esta versão “não continha pontos de integração com um sistema platypusTreasure externo” e, portanto, não continha as linhas de código mal ordenadas.
É importante observar que o código que foi explorado não existia no momento da auditoria da Omniscia. O ponto de vista da Omniscia implica que os desenvolvedores devem ter implantado uma nova versão do contrato em algum momento após a realização da auditoria.
Relacionado: Raydium anuncia detalhes do hack e propõe compensação para as vítimas
O auditor afirma que a implementação do contrato no endereço 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 da Avalanche C-Chain é a que foi exploradas. As linhas 582–584 desse contrato parecem chamar uma função chamada “isSolvent” no contrato PlatypusTreasure, e as linhas 599–601 parecem definir o valor, o fator e o rewardDebt do usuário como zero. No entanto, esses valores são zerados depois que a função “isSolvent” já foi chamada.
A equipe Platypus confirmado em 16 de fevereiro, que o invasor explorou uma “falha [no] mecanismo de verificação de solvência da USP”, mas a equipe inicialmente não forneceu mais detalhes. Este novo relatório do auditor lança mais luz sobre como o invasor pode ter conseguido realizar a exploração.
A equipe Platypus anunciou em 16 de fevereiro que o ataque ocorreu. Ele tentou entrar em contato com o hacker e obter os fundos devolvidos em troca de uma recompensa por bug. o atacante empréstimos flash usados para executar a exploração, que é semelhante à estratégia usada no Exploit Defrost Finance em 25 de dezembro de 2022.
Fonte: https://cointelegraph.com/news/platypus-attack-exploited-incorrect-ordering-of-code-auditor-claims