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. Навіть на перший погляд прості арифметичні операції, якщо їх неправильно обробити, можуть призвести до серйозних вразливостей безпеки. Команди проектів повинні більше зосереджуватися на аудиті коду та вживати необхідних заходів безпеки для захисту активів користувачів.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
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. Навіть на перший погляд прості арифметичні операції, якщо їх неправильно обробити, можуть призвести до серйозних вразливостей безпеки. Команди проектів повинні більше зосереджуватися на аудиті коду та вживати необхідних заходів безпеки для захисту активів користувачів.