Poolz подвергся атаке переполнения арифметики, убытки составили около 665K долларов
Недавно несколько проектов Poolz на различных блокчейн-сетях стали жертвами хакерских атак, в результате которых было украдено множество токенов на общую сумму около 665 000 долларов США. Атака произошла 15 марта 2023 года и затронула несколько сетей, включая Ethereum, BNB Smart Chain и Polygon.
Злоумышленник использовал уязвимость арифметического переполнения в контракте Poolz. Благодаря ловкому манипулированию функцией CreateMassPools, злоумышленник смог создать пулы с аномально большим начальным ликвидностью, при этом фактически переведя лишь небольшое количество токенов. Эта несоответствие в конечном итоге привело к тому, что злоумышленник смог вывести токены в количестве, значительно превышающем фактически внесенные.
Конкретно, злоумышленник при вызове функции CreateMassPools передал массив, который приводит к переполнению uint256. Хотя фактическое количество токенов, которое было переведено, было небольшим, из-за переполнения система ошибочно зафиксировала огромное начальное значение ликвидности. Затем злоумышленник извлек эти "фальшивые" ликвидные средства с помощью функции withdraw.
Основная проблема, выявленная в этом инциденте, заключается в переполнении целого числа. Чтобы предотвратить подобные уязвимости, разработчики должны рассмотреть возможность использования более новых версий компилятора Solidity, которые автоматически выполняют проверки на переполнение. Для проектов, использующих более старые версии Solidity, можно использовать библиотеку SafeMath от OpenZeppelin для защиты от рисков переполнения целого числа.
Эта атака еще раз подчеркивает важность строгого проведения аудита безопасности при разработке смарт-контрактов, особенно при обработке ключевых функций, связанных с пользовательскими средствами. В то же время она напоминает проектам и пользователям всегда оставаться настороже и внимательно следить за потенциальными угрозами безопасности.
Посмотреть Оригинал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
8 Лайков
Награда
8
3
Поделиться
комментарий
0/400
WhaleWatcher
· 07-05 08:14
Аудит пустая формальность?
Посмотреть ОригиналОтветить0
DAOplomacy
· 07-05 08:03
возможно, еще один случай субоптимальных криптографических примитивов
Poolz подвергся атаке арифметического переполнения, многосетевые потери составили 665K долларов
Poolz подвергся атаке переполнения арифметики, убытки составили около 665K долларов
Недавно несколько проектов Poolz на различных блокчейн-сетях стали жертвами хакерских атак, в результате которых было украдено множество токенов на общую сумму около 665 000 долларов США. Атака произошла 15 марта 2023 года и затронула несколько сетей, включая Ethereum, BNB Smart Chain и Polygon.
Злоумышленник использовал уязвимость арифметического переполнения в контракте Poolz. Благодаря ловкому манипулированию функцией CreateMassPools, злоумышленник смог создать пулы с аномально большим начальным ликвидностью, при этом фактически переведя лишь небольшое количество токенов. Эта несоответствие в конечном итоге привело к тому, что злоумышленник смог вывести токены в количестве, значительно превышающем фактически внесенные.
Конкретно, злоумышленник при вызове функции CreateMassPools передал массив, который приводит к переполнению uint256. Хотя фактическое количество токенов, которое было переведено, было небольшим, из-за переполнения система ошибочно зафиксировала огромное начальное значение ликвидности. Затем злоумышленник извлек эти "фальшивые" ликвидные средства с помощью функции withdraw.
Основная проблема, выявленная в этом инциденте, заключается в переполнении целого числа. Чтобы предотвратить подобные уязвимости, разработчики должны рассмотреть возможность использования более новых версий компилятора Solidity, которые автоматически выполняют проверки на переполнение. Для проектов, использующих более старые версии Solidity, можно использовать библиотеку SafeMath от OpenZeppelin для защиты от рисков переполнения целого числа.
Эта атака еще раз подчеркивает важность строгого проведения аудита безопасности при разработке смарт-контрактов, особенно при обработке ключевых функций, связанных с пользовательскими средствами. В то же время она напоминает проектам и пользователям всегда оставаться настороже и внимательно следить за потенциальными угрозами безопасности.