Проект Poolz стал жертвой атаки с арифметическим переполнением, убытки составили около 665000 долларов США
Недавно инцидент с безопасностью многоцепочного проекта Poolz привлек внимание в отрасли. Согласно данным мониторинга блокчейна, злоумышленники использовали уязвимость переполнения арифметики в смарт-контрактах, успешно похитив большое количество токенов из проекта Poolz на сетях Ethereum, BNB Chain и Polygon, общая стоимость которых составляет около 66,5 тысячи долларов.
Атака произошла около 3:16 по всемирному координированному времени 15 марта 2023 года. Украденные активы включают различные токены ERC-20, такие как MEE, ESNC, DON, ASW, KMON, POOLZ и другие. Злоумышленник затем обменял часть токенов на BNB, но в настоящее время эти средства еще не были переведены.
Основная проблема атаки заключается в функции CreateMassPools проекта Poolz. Эта функция изначально предназначалась для массового создания пулов ликвидности и предоставления начальной ликвидности, однако в функции getArraySum существует уязвимость переполнения целого числа. Злоумышленник, используя тщательно подобранные входные параметры, заставил сумму превышать диапазон uint256, что привело к возврату значения функции равному 1.
Однако функция CreatePool использовала исходный параметр _StartAmount при записи свойств пула, а не фактическое количество токенов, которое было переведено. Это привело к тому, что злоумышленнику достаточно было перевести 1 токен, чтобы зафиксировать начальную ликвидность, значительно превышающую фактическое количество. Затем злоумышленник вызвал функцию withdraw, завершив операцию вывода средств и достигнув своей цели атаки.
Чтобы предотвратить повторение подобных проблем, рекомендуется разработчикам использовать более новые версии Solidity для компиляции, чтобы воспользоваться встроенной функцией проверки переполнения. Для проектов, использующих более старые версии Solidity, можно рассмотреть возможность внедрения библиотеки SafeMath от OpenZeppelin для решения проблемы переполнения целых чисел.
Этот инцидент снова напоминает нам о том, что безопасность и аудит кода в разработке смарт-контрактов имеют огромное значение. Даже незначительная арифметическая ошибка может быть использована злоумышленниками, что приведет к значительным экономическим потерям.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
14 Лайков
Награда
14
8
Репост
Поделиться
комментарий
0/400
CantAffordPancake
· 08-13 08:45
Эта уязвимость довольно высокого уровня, да?
Посмотреть ОригиналОтветить0
Ser_APY_2000
· 08-13 05:08
Снова уязвимость переполнения, не могу больше терпеть.
Посмотреть ОригиналОтветить0
zkProofInThePudding
· 08-13 02:22
Ещё одна жертва была подвержена риску.
Посмотреть ОригиналОтветить0
TrustMeBro
· 08-10 11:16
Ха-ха, всего лишь мелкие деньги, следующий.
Посмотреть ОригиналОтветить0
DeFiAlchemist
· 08-10 11:15
*настраивает мистические графики* еще один протокол падает в темную арифметику... числа никогда не лгут
Посмотреть ОригиналОтветить0
RooftopReserver
· 08-10 11:13
Снова настало лучшее время для безделья на крыше.
Посмотреть ОригиналОтветить0
HashBard
· 08-10 10:54
смешно... еще один день, еще одна уязвимость переполнения
Poolz подвергся атаке с переполнением арифметики, убытки составили 665000 долларов США.
Проект Poolz стал жертвой атаки с арифметическим переполнением, убытки составили около 665000 долларов США
Недавно инцидент с безопасностью многоцепочного проекта Poolz привлек внимание в отрасли. Согласно данным мониторинга блокчейна, злоумышленники использовали уязвимость переполнения арифметики в смарт-контрактах, успешно похитив большое количество токенов из проекта Poolz на сетях Ethereum, BNB Chain и Polygon, общая стоимость которых составляет около 66,5 тысячи долларов.
Атака произошла около 3:16 по всемирному координированному времени 15 марта 2023 года. Украденные активы включают различные токены ERC-20, такие как MEE, ESNC, DON, ASW, KMON, POOLZ и другие. Злоумышленник затем обменял часть токенов на BNB, но в настоящее время эти средства еще не были переведены.
Основная проблема атаки заключается в функции CreateMassPools проекта Poolz. Эта функция изначально предназначалась для массового создания пулов ликвидности и предоставления начальной ликвидности, однако в функции getArraySum существует уязвимость переполнения целого числа. Злоумышленник, используя тщательно подобранные входные параметры, заставил сумму превышать диапазон uint256, что привело к возврату значения функции равному 1.
Однако функция CreatePool использовала исходный параметр _StartAmount при записи свойств пула, а не фактическое количество токенов, которое было переведено. Это привело к тому, что злоумышленнику достаточно было перевести 1 токен, чтобы зафиксировать начальную ликвидность, значительно превышающую фактическое количество. Затем злоумышленник вызвал функцию withdraw, завершив операцию вывода средств и достигнув своей цели атаки.
Чтобы предотвратить повторение подобных проблем, рекомендуется разработчикам использовать более новые версии Solidity для компиляции, чтобы воспользоваться встроенной функцией проверки переполнения. Для проектов, использующих более старые версии Solidity, можно рассмотреть возможность внедрения библиотеки SafeMath от OpenZeppelin для решения проблемы переполнения целых чисел.
Этот инцидент снова напоминает нам о том, что безопасность и аудит кода в разработке смарт-контрактов имеют огромное значение. Даже незначительная арифметическая ошибка может быть использована злоумышленниками, что приведет к значительным экономическим потерям.