В ходе недавней атаки на платформу OnyxDAO хакеры украли почти $4 млн, используя уязвимость в контракте NFTLiquidation. Об этом на своей странице в социальной сети X заявили эксперты компании по безопасности блокчейнов из BlockSec. Исследователи отметили, что главная причина проблемы — отсутствие проверки пользовательского ввода в функции liquidateWithSingleRepay.
По словам аналитиков, именно это и позволило злоумышленнику манипулировать параметром extraRepayAmount через repayAmount. Такое положение дел дало возможность ликвидировать весь залог с использованием минимального количества токенов.
Эксперты пояснили как происходили основные этапы атаки. По их заверениям, хакер внес депозит в oETH, а затем взял заемные активы, доведя их до порога ликвидации.
«Одновременно с этим был создан контракт, который, через атаку с пожертвованиями и использование потерь точности, искусственно занизил курс обмена oETH. Это позволило хакеру сделать свои активы подходящими для ликвидации. Затем злоумышленник произвел ликвидацию, воспользовавшись недопроверкой параметров. Манипуляция переменной extraRepayAmount позволила ему значительно снизить количество цифровых активов, необходимых для ликвидации, и получить больше oETH, что привело к получению незаконной прибыли», — заявили эксперты.
Анализируя эту атаку, исследователи заявили, что основная уязвимость заключалась в недостаточной проверке и защите важных параметров смарт-контрактов. Это подчеркивает важность тщательной верификации данных, особенно в DeFi-проектах, где ошибки могут привести к значительным финансовым потерям. В данном случае, злоупотребление функцией ликвидации продемонстрировало, как даже небольшая уязвимость может быть использована для крупных атак.