Poolz подвергся атаке из-за уязвимости переполнения арифметики, убытки составили около 66,5 тысячи долларов США
В последнее время проекты Poolz на Ethereum, Binance Smart Chain и сети Polygon подверглись атаке, в результате которой были украдены различные токены на общую сумму около 66,5 тысячи долларов США. Атака произошла около 3:16 UTC 15 марта 2023 года.
Согласно данным на блокчейне, эта атака затронула несколько токенов, включая MEE, ESNC, DON, ASW, KMON, POOLZ и другие. Нападающие уже обменяли часть украденных токенов на BNB, но эти средства еще не были переведены.
Атака в основном использовала уязвимость переполнения арифметики в контракте Poolz. В частности, проблема заключалась в функции getArraySum в функции CreateMassPools. Эта функция при вычислении начальной ликвидности для массового создания пулов не обрабатывала большие значения должным образом, что привело к переполнению целого числа.
Атакующий с помощью тщательно сконструированных входных параметров заставляет функцию getArraySum возвращать значение 1, в то время как фактически записанный _StartAmount является очень большим числом. Таким образом, атакующему достаточно внести 1 токен, чтобы в системе было зафиксировано большое количество начальной ликвидности. Затем атакующий вызывает функцию withdraw, чтобы вывести эту "ложную" ликвидность, тем самым завершив атаку.
Чтобы предотвратить повторение подобных проблем, эксперты рекомендуют разработчикам использовать более новые версии компилятора Solidity, поскольку в новых версиях автоматически проводится проверка на переполнение. Для проектов, использующих более старые версии Solidity, можно рассмотреть возможность внедрения библиотеки SafeMath от OpenZeppelin для обработки целочисленных операций, чтобы избежать риска переполнения.
Этот инцидент снова напоминает нам о том, что безопасность арифметических операций в разработке смарт-контрактов имеет решающее значение. Разработчики должны постоянно быть настороже в отношении возможных проблем с переполнением целых чисел и принимать соответствующие меры для защиты безопасности контракта.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
12 Лайков
Награда
12
7
Поделиться
комментарий
0/400
CryptoPunster
· 07-09 19:50
Хорошо, снова проблемы с контрактом, эти лукшамы уже разыгрываются как лохи.
Посмотреть ОригиналОтветить0
BoredRiceBall
· 07-08 04:48
Ещё одна уязвимость обнаружена!
Посмотреть ОригиналОтветить0
NotFinancialAdviser
· 07-06 20:27
Сумма ущерба не так велика, да~
Посмотреть ОригиналОтветить0
LiquidationSurvivor
· 07-06 20:25
Снова видим проект с голым бегом
Посмотреть ОригиналОтветить0
SelfSovereignSteve
· 07-06 20:14
Еще один аирдроп, который разыгрывает людей как лохов, обречен.
Poolz подвергся атаке с арифметическим переполнением, убытки составили 665 тысяч долларов.
Poolz подвергся атаке из-за уязвимости переполнения арифметики, убытки составили около 66,5 тысячи долларов США
В последнее время проекты Poolz на Ethereum, Binance Smart Chain и сети Polygon подверглись атаке, в результате которой были украдены различные токены на общую сумму около 66,5 тысячи долларов США. Атака произошла около 3:16 UTC 15 марта 2023 года.
Согласно данным на блокчейне, эта атака затронула несколько токенов, включая MEE, ESNC, DON, ASW, KMON, POOLZ и другие. Нападающие уже обменяли часть украденных токенов на BNB, но эти средства еще не были переведены.
Атака в основном использовала уязвимость переполнения арифметики в контракте Poolz. В частности, проблема заключалась в функции getArraySum в функции CreateMassPools. Эта функция при вычислении начальной ликвидности для массового создания пулов не обрабатывала большие значения должным образом, что привело к переполнению целого числа.
Атакующий с помощью тщательно сконструированных входных параметров заставляет функцию getArraySum возвращать значение 1, в то время как фактически записанный _StartAmount является очень большим числом. Таким образом, атакующему достаточно внести 1 токен, чтобы в системе было зафиксировано большое количество начальной ликвидности. Затем атакующий вызывает функцию withdraw, чтобы вывести эту "ложную" ликвидность, тем самым завершив атаку.
Чтобы предотвратить повторение подобных проблем, эксперты рекомендуют разработчикам использовать более новые версии компилятора Solidity, поскольку в новых версиях автоматически проводится проверка на переполнение. Для проектов, использующих более старые версии Solidity, можно рассмотреть возможность внедрения библиотеки SafeMath от OpenZeppelin для обработки целочисленных операций, чтобы избежать риска переполнения.
Этот инцидент снова напоминает нам о том, что безопасность арифметических операций в разработке смарт-контрактов имеет решающее значение. Разработчики должны постоянно быть настороже в отношении возможных проблем с переполнением целых чисел и принимать соответствующие меры для защиты безопасности контракта.