Poolz подвергся атаке переполнения арифметики, убытки составили около 665K долларов
Недавно инцидент атаки на платформу Poolz привлек широкое внимание криптовалютного сообщества. Злоумышленник использовал уязвимость переполнения арифметического типа в смарт-контракте и успешно украл криптоактивы на сумму около 665000 долларов США с нескольких сетей, включая Ethereum, BNB Chain и Polygon.
Согласно данным на блокчейне, эта атака произошла 15 марта 2023 года и затронула несколько токенов, включая MEE, ESNC, DON, ASW, KMON, POOLZ и другие. Нападающие с помощью хитрых манипуляций использовали уязвимость в функции CreateMassPools платформы Poolz.
Основная проблема атаки заключается в функции getArraySum. Эта функция должна была использоваться для вычисления начальной ликвидности при массовом создании пулов пользователем, но из-за переполнения целого числа злоумышленник мог создать пул с большим количеством ложной ликвидности, просто передав очень небольшое количество токенов. Затем злоумышленник извлек это неверно учтенное количество токенов с помощью функции withdraw.
Технический анализ показывает, что злоумышленники сначала обменяли небольшое количество токенов MNZ через одну из децентрализованных бирж. Затем они вызвали уязвимую функцию CreateMassPools, передав тщательно сконструированные параметры, которые привели к тому, что массив _StartAmount превысил максимальное значение uint256 при суммировании, что вызвало переполнение. Это заставило систему ошибочно считать, что злоумышленники предоставили большое количество ликвидности, в то время как на самом деле было переведено всего 1 токен.
Чтобы предотвратить повторение подобных проблем, эксперты отрасли рекомендуют разработчикам использовать более новые версии языка программирования Solidity, которые автоматически выполняют проверку на переполнение в процессе компиляции. Для проектов, использующих старую версию Solidity, рекомендуется внедрить библиотеку SafeMath от OpenZeppelin для обработки целочисленных вычислений, чтобы избежать риска переполнения.
Это событие еще раз подчеркивает важность аудита безопасности смарт-контрактов. С развитием экосистемы децентрализованных финансов (DeFi) команды проектов должны уделять больше внимания безопасности кода, регулярно проводить проверки безопасности и своевременно исправлять потенциальные уязвимости для защиты активов пользователей.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Poolz подвергся атаке арифметического переполнения, потеря на нескольких цепочках составила 665000 долларов США
Poolz подвергся атаке переполнения арифметики, убытки составили около 665K долларов
Недавно инцидент атаки на платформу Poolz привлек широкое внимание криптовалютного сообщества. Злоумышленник использовал уязвимость переполнения арифметического типа в смарт-контракте и успешно украл криптоактивы на сумму около 665000 долларов США с нескольких сетей, включая Ethereum, BNB Chain и Polygon.
Согласно данным на блокчейне, эта атака произошла 15 марта 2023 года и затронула несколько токенов, включая MEE, ESNC, DON, ASW, KMON, POOLZ и другие. Нападающие с помощью хитрых манипуляций использовали уязвимость в функции CreateMassPools платформы Poolz.
Основная проблема атаки заключается в функции getArraySum. Эта функция должна была использоваться для вычисления начальной ликвидности при массовом создании пулов пользователем, но из-за переполнения целого числа злоумышленник мог создать пул с большим количеством ложной ликвидности, просто передав очень небольшое количество токенов. Затем злоумышленник извлек это неверно учтенное количество токенов с помощью функции withdraw.
Технический анализ показывает, что злоумышленники сначала обменяли небольшое количество токенов MNZ через одну из децентрализованных бирж. Затем они вызвали уязвимую функцию CreateMassPools, передав тщательно сконструированные параметры, которые привели к тому, что массив _StartAmount превысил максимальное значение uint256 при суммировании, что вызвало переполнение. Это заставило систему ошибочно считать, что злоумышленники предоставили большое количество ликвидности, в то время как на самом деле было переведено всего 1 токен.
Чтобы предотвратить повторение подобных проблем, эксперты отрасли рекомендуют разработчикам использовать более новые версии языка программирования Solidity, которые автоматически выполняют проверку на переполнение в процессе компиляции. Для проектов, использующих старую версию Solidity, рекомендуется внедрить библиотеку SafeMath от OpenZeppelin для обработки целочисленных вычислений, чтобы избежать риска переполнения.
Это событие еще раз подчеркивает важность аудита безопасности смарт-контрактов. С развитием экосистемы децентрализованных финансов (DeFi) команды проектов должны уделять больше внимания безопасности кода, регулярно проводить проверки безопасности и своевременно исправлять потенциальные уязвимости для защиты активов пользователей.