Атака Flash Flash в размере 8 миллионов долларов была стала возможной из -за кода, который был в неправильном порядке, согласно отчету после MoTem от Auditor Platypus Omniscia. Аудиторская компания утверждает, что проблематичный код не существует в версии, которую они видели.
В свете недавнего инцидента @platypusdefi The https://t.co/30pzcoijnt подготовила технический посмертный анализ, описывающий, как эксплуатация распутывалась в отличных деталях.
- Omniscia (@omniscia_sec) 17 февраля 2023 г.
Обязательно следите за @omniscia_sec, чтобы получить больше обновлений безопасности! Https: //t.co/cf784qtkpk pic.Twitter.com/eghyoyabhn
Согласно отчету, контракт Platypus MasterplatypusV4 «содержал смертельное заблуждение в своем механизме экстренной помощи», что заставило его выполнять «проверку платежеспособности перед обновлением токенов LP, связанных с позицией зажигания».
В отчете подчеркивается, что в кодексе функции экстренной помощи имел все необходимые элементы для предотвращения атаки, но эти элементы были просто написаны в неправильном порядке, как объяснила Омниска:
«Проблема могла быть предотвращена путем повторного упорядочения операторов MaverPlatyPusv4 :: EmergencyWithDraw и выполнения проверки платежеспособности после того, как вход суммы пользователя был установлен на 0, что запретило бы атаку на происхождение».
Omnisia признала, что они проверяли версию контракта MaverPlatyPusv4 с 21 ноября по 5 декабря 2021 года. Однако эта версия «не содержала точек интеграции с внешней системой по утрачникам» и, следовательно, не содержала неправильных строк кода. С точки зрения Omniscia, это подразумевает, что разработчики должны были развернуть новую версию контракта в какой -то момент после проведения аудита.
Аудитор утверждает, что реализация контракта в Avalanche (Avax) C-Chain Address 0xc007f27b757a782C833C568F5851AE1DFE0E6EC7-это то, что было эксплуатировано. Строки 582-584 настоящего Контракта, по-видимому, называют функцию, называемую «Issolvent» на контракте Platipustreasure, а строки 599-601, по-видимому, устанавливают сумму, фактор и вознаграждение пользователя на ноль. Тем не менее, эти суммы устанавливаются в ноль после того, как функция «Issolvent» уже была вызвана.
Команда Platypus подтвердила 16 февраля, что злоумышленник использовал «недостаток в механизме проверки платежеспособности USP», но команда изначально не предоставила более подробную информацию. Этот новый отчет от аудитора проливает дальнейший свет на то, как злоумышленник, возможно, смог выполнить эксплойт.
Команда Platypus объявила 16 февраля, что атака произошла. Он попытался связаться с хакером и получить средства, возвращенные в обмен на щедрость. Атакующий использовал мигающие кредиты для выполнения эксплойта, которая аналогична стратегии, используемой в эксплуатации Finance Defrost 25 декабря.
Источник