Poolz зазнав атаки переповнення арифметики, втрати приблизно 665K доларів
Нещодавно кілька проектів Poolz на різних блокчейн-мережах зазнали хакерської атаки, в результаті якої було вкрадено велику кількість токенів на загальну суму приблизно 665 000 доларів. Атака сталася 15 березня 2023 року і охоплювала кілька мереж, включаючи Ethereum, BNB Smart Chain та Polygon.
Зловмисник використав вразливість арифметичного переповнення в контракті Poolz. Завдяки хитрим маніпуляціям з функцією CreateMassPools зловмисник зміг створити басейни з аномально великою початковою ліквідністю, але насправді потрібно було внести лише невелику кількість токенів. Ця невідповідність врешті-решт призвела до того, що зловмисник зміг витягти токени, які значно перевищували фактичну суму, яку він вніс.
Зокрема, зловмисник передав масив, який призводить до переповнення uint256, коли викликав функцію CreateMassPools. Хоча фактична кількість токенів, яка була переведена, була незначною, через переповнення система помилково зафіксувала величезне початкове значення ліквідності. Потім зловмисник витягнув цю "фальшиву" ліквідність через функцію 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
· 22год тому
Аудит виглядає як порожня формальність?
Переглянути оригіналвідповісти на0
DAOplomacy
· 22год тому
можливо, ще один випадок субоптимальних засобів безпеки
Poolz зазнав атаки через переповнення арифметики, багато ланцюгів втратили 665 тисяч доларів
Poolz зазнав атаки переповнення арифметики, втрати приблизно 665K доларів
Нещодавно кілька проектів Poolz на різних блокчейн-мережах зазнали хакерської атаки, в результаті якої було вкрадено велику кількість токенів на загальну суму приблизно 665 000 доларів. Атака сталася 15 березня 2023 року і охоплювала кілька мереж, включаючи Ethereum, BNB Smart Chain та Polygon.
Зловмисник використав вразливість арифметичного переповнення в контракті Poolz. Завдяки хитрим маніпуляціям з функцією CreateMassPools зловмисник зміг створити басейни з аномально великою початковою ліквідністю, але насправді потрібно було внести лише невелику кількість токенів. Ця невідповідність врешті-решт призвела до того, що зловмисник зміг витягти токени, які значно перевищували фактичну суму, яку він вніс.
Зокрема, зловмисник передав масив, який призводить до переповнення uint256, коли викликав функцію CreateMassPools. Хоча фактична кількість токенів, яка була переведена, була незначною, через переповнення система помилково зафіксувала величезне початкове значення ліквідності. Потім зловмисник витягнув цю "фальшиву" ліквідність через функцію withdraw.
Основною проблемою, виявленою в цьому інциденті, є переповнення цілих чисел. Щоб уникнути подібних вразливостей, розробники повинні розглянути можливість використання новіших версій компілятора Solidity, які автоматично виконують перевірку на переповнення. Для проектів, що використовують старіші версії Solidity, можна застосувати бібліотеку SafeMath від OpenZeppelin для запобігання ризику переповнення цілих чисел.
Ця атака ще раз підкреслила важливість строгого проведення аудиту безпеки під час розробки смарт-контрактів, особливо при обробці ключових функцій, пов'язаних із коштами користувачів. Водночас це також нагадує проектним командам та користувачам завжди бути пильними та уважно стежити за потенційними загрозами безпеці.