Poolz зазнав атаки переповнення арифметики, втрати приблизно 665K доларів
Нещодавно кілька проектів Poolz на різних блокчейн-мережах зазнали хакерської атаки, в результаті якої було вкрадено велику кількість токенів на загальну суму приблизно 665 000 доларів. Атака сталася 15 березня 2023 року і охоплювала кілька мереж, включаючи Ethereum, BNB Smart Chain та Polygon.
Зловмисник використав вразливість арифметичного переповнення в контракті Poolz. Завдяки хитрим маніпуляціям з функцією CreateMassPools зловмисник зміг створити басейни з аномально великою початковою ліквідністю, але насправді потрібно було внести лише невелику кількість токенів. Ця невідповідність врешті-решт призвела до того, що зловмисник зміг витягти токени, які значно перевищували фактичну суму, яку він вніс.
Зокрема, зловмисник передав масив, який призводить до переповнення uint256, коли викликав функцію CreateMassPools. Хоча фактична кількість токенів, яка була переведена, була незначною, через переповнення система помилково зафіксувала величезне початкове значення ліквідності. Потім зловмисник витягнув цю "фальшиву" ліквідність через функцію withdraw.
Основною проблемою, виявленою в цьому інциденті, є переповнення цілих чисел. Щоб уникнути подібних вразливостей, розробники повинні розглянути можливість використання новіших версій компілятора Solidity, які автоматично виконують перевірку на переповнення. Для проектів, що використовують старіші версії Solidity, можна застосувати бібліотеку SafeMath від OpenZeppelin для запобігання ризику переповнення цілих чисел.
Ця атака ще раз підкреслила важливість строгого проведення аудиту безпеки під час розробки смарт-контрактів, особливо при обробці ключових функцій, пов'язаних із коштами користувачів. Водночас це також нагадує проектним командам та користувачам завжди бути пильними та уважно стежити за потенційними загрозами безпеці.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
11 лайків
Нагородити
11
4
Поділіться
Прокоментувати
0/400
FalseProfitProphet
· 07-08 03:05
Ще одне падіння до нуля~
Переглянути оригіналвідповісти на0
WhaleWatcher
· 07-05 08:14
Аудит виглядає як порожня формальність?
Переглянути оригіналвідповісти на0
DAOplomacy
· 07-05 08:03
можливо, ще один випадок субоптимальних засобів безпеки
Poolz зазнав атаки через переповнення арифметики, багато ланцюгів втратили 665 тисяч доларів
Poolz зазнав атаки переповнення арифметики, втрати приблизно 665K доларів
Нещодавно кілька проектів Poolz на різних блокчейн-мережах зазнали хакерської атаки, в результаті якої було вкрадено велику кількість токенів на загальну суму приблизно 665 000 доларів. Атака сталася 15 березня 2023 року і охоплювала кілька мереж, включаючи Ethereum, BNB Smart Chain та Polygon.
Зловмисник використав вразливість арифметичного переповнення в контракті Poolz. Завдяки хитрим маніпуляціям з функцією CreateMassPools зловмисник зміг створити басейни з аномально великою початковою ліквідністю, але насправді потрібно було внести лише невелику кількість токенів. Ця невідповідність врешті-решт призвела до того, що зловмисник зміг витягти токени, які значно перевищували фактичну суму, яку він вніс.
Зокрема, зловмисник передав масив, який призводить до переповнення uint256, коли викликав функцію CreateMassPools. Хоча фактична кількість токенів, яка була переведена, була незначною, через переповнення система помилково зафіксувала величезне початкове значення ліквідності. Потім зловмисник витягнув цю "фальшиву" ліквідність через функцію withdraw.
Основною проблемою, виявленою в цьому інциденті, є переповнення цілих чисел. Щоб уникнути подібних вразливостей, розробники повинні розглянути можливість використання новіших версій компілятора Solidity, які автоматично виконують перевірку на переповнення. Для проектів, що використовують старіші версії Solidity, можна застосувати бібліотеку SafeMath від OpenZeppelin для запобігання ризику переповнення цілих чисел.
Ця атака ще раз підкреслила важливість строгого проведення аудиту безпеки під час розробки смарт-контрактів, особливо при обробці ключових функцій, пов'язаних із коштами користувачів. Водночас це також нагадує проектним командам та користувачам завжди бути пильними та уважно стежити за потенційними загрозами безпеці.