Poolz зазнав атаки арифметичного переповнення, втратили близько 66,5 тисяч доларів
Нещодавно кілька проектів Poolz на різних блокчейн-мережах зазнали хакерської атаки, внаслідок якої було викрадено велику кількість токенів на загальну суму близько 66,5 тисячі доларів США. Ця атака відбулася в основному на таких ланцюгах, як Ethereum, BNB Chain і Polygon.
Зловмисники скористалися вразливістю арифметичного переповнення в смарт-контракті Poolz. Конкретно, проблема полягає в функції getArraySum в функції CreateMassPools. Ця функція виконує накопичення, перебираючи масив _StartAmount, але не обробляє переповнення належним чином. Зловмисники хитро сконструювали масив, що містить надзвичайно великі значення, що призвело до перевищення результату накопичення за межі uint256, в результаті чого значення, що повертається, стало 1.
Процес атаки наступний:
Зловмисник спочатку обміняв кілька токенів MNZ на певному DEX.
Потім викликається функція CreateMassPools з ретельно розробленими параметрами. Хоча насправді переводиться лише 1 токен, але _StartAmount є величезним значенням.
Нарешті, через функцію withdraw вивести кошти, завершивши атаку.
Ця подія стосується кількох токенів, зокрема MEE, ESNC, DON, ASW, KMON, POOLZ тощо. Найбільші втрати зазнав токен ASW, понад 2 мільярди штук.
Щоб запобігти повторенню таких проблем, рекомендується розробникам використовувати більш нову версію компілятора Solidity, яка має вбудовану функцію перевірки на переповнення. Для проектів, що використовують старі версії Solidity, можна розглянути можливість впровадження бібліотеки SafeMath від OpenZeppelin для обробки проблем з переповненням цілих чисел.
Ця атака знову нагадала про важливість безпеки смарт-контрактів для проектів DeFi. Навіть на перший погляд прості арифметичні операції, якщо їх неправильно обробити, можуть призвести до серйозних вразливостей безпеки. Команди проектів повинні більше зосереджуватися на аудиті коду та вживати необхідних заходів безпеки для захисту активів користувачів.
Переглянути оригінал
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.
Poolz зазнав атаки переповнення арифметики, багато ланцюгів зазнали збитків у 66,5 тисячі доларів США.
Poolz зазнав атаки арифметичного переповнення, втратили близько 66,5 тисяч доларів
Нещодавно кілька проектів Poolz на різних блокчейн-мережах зазнали хакерської атаки, внаслідок якої було викрадено велику кількість токенів на загальну суму близько 66,5 тисячі доларів США. Ця атака відбулася в основному на таких ланцюгах, як Ethereum, BNB Chain і Polygon.
Зловмисники скористалися вразливістю арифметичного переповнення в смарт-контракті Poolz. Конкретно, проблема полягає в функції getArraySum в функції CreateMassPools. Ця функція виконує накопичення, перебираючи масив _StartAmount, але не обробляє переповнення належним чином. Зловмисники хитро сконструювали масив, що містить надзвичайно великі значення, що призвело до перевищення результату накопичення за межі uint256, в результаті чого значення, що повертається, стало 1.
Процес атаки наступний:
Зловмисник спочатку обміняв кілька токенів MNZ на певному DEX.
Потім викликається функція CreateMassPools з ретельно розробленими параметрами. Хоча насправді переводиться лише 1 токен, але _StartAmount є величезним значенням.
Нарешті, через функцію withdraw вивести кошти, завершивши атаку.
Ця подія стосується кількох токенів, зокрема MEE, ESNC, DON, ASW, KMON, POOLZ тощо. Найбільші втрати зазнав токен ASW, понад 2 мільярди штук.
Щоб запобігти повторенню таких проблем, рекомендується розробникам використовувати більш нову версію компілятора Solidity, яка має вбудовану функцію перевірки на переповнення. Для проектів, що використовують старі версії Solidity, можна розглянути можливість впровадження бібліотеки SafeMath від OpenZeppelin для обробки проблем з переповненням цілих чисел.
Ця атака знову нагадала про важливість безпеки смарт-контрактів для проектів DeFi. Навіть на перший погляд прості арифметичні операції, якщо їх неправильно обробити, можуть призвести до серйозних вразливостей безпеки. Команди проектів повинні більше зосереджуватися на аудиті коду та вживати необхідних заходів безпеки для захисту активів користувачів.