Poolz подвергся атаке с переполнением арифметики, убытки составили 665000 долларов США.

robot
Генерация тезисов в процессе

Проект Poolz стал жертвой атаки с арифметическим переполнением, убытки составили около 665000 долларов США

Недавно инцидент с безопасностью многоцепочного проекта Poolz привлек внимание в отрасли. Согласно данным мониторинга блокчейна, злоумышленники использовали уязвимость переполнения арифметики в смарт-контрактах, успешно похитив большое количество токенов из проекта Poolz на сетях Ethereum, BNB Chain и Polygon, общая стоимость которых составляет около 66,5 тысячи долларов.

Poolz подвергся атаке из-за проблемы с переполнением чисел, потеряв около 665K долларов!

Атака произошла около 3:16 по всемирному координированному времени 15 марта 2023 года. Украденные активы включают различные токены ERC-20, такие как MEE, ESNC, DON, ASW, KMON, POOLZ и другие. Злоумышленник затем обменял часть токенов на BNB, но в настоящее время эти средства еще не были переведены.

Poolz подвергся атаке из-за переполнения арифметики, убытки составили около 665K долларов!

Основная проблема атаки заключается в функции CreateMassPools проекта Poolz. Эта функция изначально предназначалась для массового создания пулов ликвидности и предоставления начальной ликвидности, однако в функции getArraySum существует уязвимость переполнения целого числа. Злоумышленник, используя тщательно подобранные входные параметры, заставил сумму превышать диапазон uint256, что привело к возврату значения функции равному 1.

Poolz подвергся атаке из-за проблемы с переполнением, убытки составили около 665K долларов!

Однако функция CreatePool использовала исходный параметр _StartAmount при записи свойств пула, а не фактическое количество токенов, которое было переведено. Это привело к тому, что злоумышленнику достаточно было перевести 1 токен, чтобы зафиксировать начальную ликвидность, значительно превышающую фактическое количество. Затем злоумышленник вызвал функцию withdraw, завершив операцию вывода средств и достигнув своей цели атаки.

Poolz подвергся атаке из-за проблемы с переполнением вычислений, потеряв около 665K долларов!

Чтобы предотвратить повторение подобных проблем, рекомендуется разработчикам использовать более новые версии Solidity для компиляции, чтобы воспользоваться встроенной функцией проверки переполнения. Для проектов, использующих более старые версии Solidity, можно рассмотреть возможность внедрения библиотеки SafeMath от OpenZeppelin для решения проблемы переполнения целых чисел.

Этот инцидент снова напоминает нам о том, что безопасность и аудит кода в разработке смарт-контрактов имеют огромное значение. Даже незначительная арифметическая ошибка может быть использована злоумышленниками, что приведет к значительным экономическим потерям.

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 8
  • Репост
  • Поделиться
комментарий
0/400
CantAffordPancakevip
· 08-13 08:45
Эта уязвимость довольно высокого уровня, да?
Посмотреть ОригиналОтветить0
Ser_APY_2000vip
· 08-13 05:08
Снова уязвимость переполнения, не могу больше терпеть.
Посмотреть ОригиналОтветить0
zkProofInThePuddingvip
· 08-13 02:22
Ещё одна жертва была подвержена риску.
Посмотреть ОригиналОтветить0
TrustMeBrovip
· 08-10 11:16
Ха-ха, всего лишь мелкие деньги, следующий.
Посмотреть ОригиналОтветить0
DeFiAlchemistvip
· 08-10 11:15
*настраивает мистические графики* еще один протокол падает в темную арифметику... числа никогда не лгут
Посмотреть ОригиналОтветить0
RooftopReservervip
· 08-10 11:13
Снова настало лучшее время для безделья на крыше.
Посмотреть ОригиналОтветить0
HashBardvip
· 08-10 10:54
смешно... еще один день, еще одна уязвимость переполнения
Посмотреть ОригиналОтветить0
DegenGamblervip
· 08-10 10:53
Еще один контракт пробит до дна
Посмотреть ОригиналОтветить0
  • Закрепить