🧵1/ ⚠️ Анализ эксплуатации: потеря $80M в атаке на Resolv Labs Сегодня ранее @ResolvLabs подвергся эксплуатации из-за сбоя в механизме централизованной проверки параметров. С капиталом всего ~$200K злоумышленник выпустил 50M и 30M USR, используя по $100K USDC каждый, что привело к общей потере около $80M. После инцидента стейблкоин $USR на короткое время утратил привязку к $0.051.
🧵2/ Механизм атаки Функция completeSwap в контракте #TheCounter от Resolv Labs позволяет определить количество выпущенных $USR через параметр _targetAmount.
🧵3/ Функция completeSwap проверяет, что адрес вызывающего (msg.sender) должен обладать SERVICE_ROLE. Это означает, что после того, как пользователь отправляет транзакцию обмена, команде проекта необходимо выполнить централизованную проверку параметров, таких как _targetAmount, и только после подтверждения корректности они вызовут эту функцию для завершения транзакции. На основе двух атакующих транзакций, $100K USDC соответствовали значениям _targetAmount 50M и 30M USR соответственно. Очевидно, что механизм проверки _targetAmount проекта не сработал. Поскольку проверка _targetAmount централизована и не является открытым исходным кодом, на данном этапе нельзя определить коренную причину. Возможности, такие как участие инсайдеров, компрометация централизованной системы или утечка приватного ключа SERVICE_ROLE, не могут быть исключены.
2/ Механизм атаки Функция completeSwap в контракте #TheCounter от Resolv Labs позволяет определить количество выпущенных $USR через параметр _targetAmount.
2,12K