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

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

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

Атакующий использовал уязвимость переполнения арифметики в смарт-контракте Poolz. Конкретно, проблема заключалась в функции getArraySum в функции CreateMassPools. Эта функция при расчете начальной ликвидности пула из-за переполнения целого числа позволила атакующему создать иллюзию большой ликвидности, переведя лишь небольшое количество токенов.

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

Процесс атаки следующий:

  1. Нападающий сначала обменял небольшое количество токенов MNZ на одном из децентрализованных обменников.

  2. Затем был вызван уязвимый функция CreateMassPools. Эта функция позволяет пользователям массово создавать ликвидные пулы и предоставлять первоначальную ликвидность.

  3. При вычислении начальной суммы ликвидности произошел переполнение целого числа в функции getArraySum. Сумма массива, переданная злоумышленником, превысила максимальное значение, которое может быть представлено uint256, что привело к тому, что возвращаемое значение функции стало равно 1.

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

  5. Наконец, злоумышленник вызывает функцию withdraw для вывода средств, завершив атаку.

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

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

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

Эта атака снова подчеркивает необходимость особого внимания к безопасности арифметических операций при разработке и аудите смарт-контрактов. В то же время, команде проекта следует регулярно проводить аудиты безопасности, чтобы своевременно выявлять и исправлять потенциальные уязвимости для защиты активов пользователей.

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

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 6
  • Поделиться
комментарий
0/400
OnChainDetectivevip
· 7ч назад
заметил эту атаку раньше... ошибка новичка с переполнением целого числа. когда же разработчики научатся использовать safeMath, смh
Посмотреть ОригиналОтветить0
AirdropGrandpavip
· 7ч назад
Снова переполнение стека, это правда печально.
Посмотреть ОригиналОтветить0
CryptoSurvivorvip
· 7ч назад
Такие маленькие уязвимости могут быть обнаружены, это действительно мелочные дела.
Посмотреть ОригиналОтветить0
FrogInTheWellvip
· 7ч назад
Снова переполнение... Вы понимаете безопасность аудита?
Посмотреть ОригиналОтветить0
AlwaysAnonvip
· 7ч назад
Еще один проект заглох.
Посмотреть ОригиналОтветить0
HodlTheDoorvip
· 7ч назад
Опять не успели на халяву, как закрылись.
Посмотреть ОригиналОтветить0
  • Закрепить