Poolz столкнулся с атакой из-за переполнения арифметики, потери составили почти 670000 долларов США
Недавно инцидент с атакой на многоцепочный проект Poolz привлек широкое внимание в отрасли. Согласно данным мониторинга цепи, атака произошла 15 марта 2023 года и затронула несколько публичных цепей, включая Ethereum, BNB Chain и Polygon.
Эта атака привела к краже большого количества токенов, включая токены нескольких проектов, таких как MEE, ESNC, DON, ASW, KMON, POOLZ и другие. Предварительная оценка показывает, что общая стоимость украденных активов составляет около 665,000 долларов США. В настоящее время часть украденных токенов была обменена злоумышленниками на BNB, но ещё не была переведена с адреса, контролируемого злоумышленниками.
Анализ показывает, что данная атака в основном использовала уязвимость переполнения арифметики в смарт-контракте проекта Poolz. Злоумышленник,巧妙构造的输入参数, вызвал переполнение целого числа при массовом создании ликвидностных пулов, что позволило получить большое количество ликвидности за очень небольшое количество токенов.
Конкретно, злоумышленник сначала обменял небольшое количество токенов MNZ на одной из децентрализованных бирж. Затем злоумышленник вызвал функцию CreateMassPools в контракте Poolz, которая позволяет пользователям массово создавать ликвидные пулы и предоставлять начальную ликвидность. Проблема заключается в функции getArraySum, которая используется для расчета общего объема начальной ликвидности, предоставленной пользователем.
Атакующий тщательно сконструировал массив с очень большими значениями в качестве входных параметров. Когда эти значения складывались, произошел переполнение целого числа, что привело к огромной разнице между фактически переведенным количеством токенов и записанным количеством. В конечном итоге атакующий перевел всего 1 токен, но в контракте была зафиксирована огромная ликвидность.
После выполнения указанных действий злоумышленник немедленно вызывает функцию withdraw для вывода средств, легко завершив весь процесс атаки.
Этот инцидент вновь подчеркивает опасность проблемы арифметического переполнения в смарт-контрактах. Чтобы предотвратить подобные риски, эксперты отрасли рекомендуют разработчикам использовать более новые версии языка программирования Solidity, которые автоматически выполняют проверку на переполнение во время компиляции. Для проектов, использующих более ранние версии Solidity, можно рассмотреть возможность внедрения таких зрелых библиотек безопасности, как OpenZeppelin, для решения проблемы переполнения целых чисел.
Это событие напоминает нам о том, что безопасность контрактов всегда является ключевой проблемой, которую нельзя игнорировать в экосистеме блокчейна. Команды проектов должны постоянно усиливать аудит кода и тестирование безопасности, в то время как пользователи, участвуя в новых проектах, также должны быть бдительными и осторожно оценивать связанные риски.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
18 Лайков
Награда
18
5
Поделиться
комментарий
0/400
PositionPhobia
· 14ч назад
Потерпели ужасные убытки, даже стоп лосс не сработал.
Посмотреть ОригиналОтветить0
StrawberryIce
· 14ч назад
Сколько уязвимостей, сколько уязвимостей, какой контракт надежен!
Посмотреть ОригиналОтветить0
InscriptionGriller
· 14ч назад
Еще один яркий пример нулевого уровня, каждый день разыгрывайте людей как лохов
Посмотреть ОригиналОтветить0
SeasonedInvestor
· 14ч назад
Снова обманули! Какой контракт тестировали?
Посмотреть ОригиналОтветить0
SchrodingersPaper
· 15ч назад
Снова обобрали? Играешь в контракты, а всё ещё не протестировал на переполнение! Так плохо!
Poolz подвергся атаке переполнения арифметики, потеряв почти 670 000 долларов на нескольких цепочках.
Poolz столкнулся с атакой из-за переполнения арифметики, потери составили почти 670000 долларов США
Недавно инцидент с атакой на многоцепочный проект Poolz привлек широкое внимание в отрасли. Согласно данным мониторинга цепи, атака произошла 15 марта 2023 года и затронула несколько публичных цепей, включая Ethereum, BNB Chain и Polygon.
Эта атака привела к краже большого количества токенов, включая токены нескольких проектов, таких как MEE, ESNC, DON, ASW, KMON, POOLZ и другие. Предварительная оценка показывает, что общая стоимость украденных активов составляет около 665,000 долларов США. В настоящее время часть украденных токенов была обменена злоумышленниками на BNB, но ещё не была переведена с адреса, контролируемого злоумышленниками.
Анализ показывает, что данная атака в основном использовала уязвимость переполнения арифметики в смарт-контракте проекта Poolz. Злоумышленник,巧妙构造的输入参数, вызвал переполнение целого числа при массовом создании ликвидностных пулов, что позволило получить большое количество ликвидности за очень небольшое количество токенов.
Конкретно, злоумышленник сначала обменял небольшое количество токенов MNZ на одной из децентрализованных бирж. Затем злоумышленник вызвал функцию CreateMassPools в контракте Poolz, которая позволяет пользователям массово создавать ликвидные пулы и предоставлять начальную ликвидность. Проблема заключается в функции getArraySum, которая используется для расчета общего объема начальной ликвидности, предоставленной пользователем.
Атакующий тщательно сконструировал массив с очень большими значениями в качестве входных параметров. Когда эти значения складывались, произошел переполнение целого числа, что привело к огромной разнице между фактически переведенным количеством токенов и записанным количеством. В конечном итоге атакующий перевел всего 1 токен, но в контракте была зафиксирована огромная ликвидность.
После выполнения указанных действий злоумышленник немедленно вызывает функцию withdraw для вывода средств, легко завершив весь процесс атаки.
Этот инцидент вновь подчеркивает опасность проблемы арифметического переполнения в смарт-контрактах. Чтобы предотвратить подобные риски, эксперты отрасли рекомендуют разработчикам использовать более новые версии языка программирования Solidity, которые автоматически выполняют проверку на переполнение во время компиляции. Для проектов, использующих более ранние версии Solidity, можно рассмотреть возможность внедрения таких зрелых библиотек безопасности, как OpenZeppelin, для решения проблемы переполнения целых чисел.
Это событие напоминает нам о том, что безопасность контрактов всегда является ключевой проблемой, которую нельзя игнорировать в экосистеме блокчейна. Команды проектов должны постоянно усиливать аудит кода и тестирование безопасности, в то время как пользователи, участвуя в новых проектах, также должны быть бдительными и осторожно оценивать связанные риски.