Poolz зазнав атаки внаслідок переповнення арифметичних операцій, збитки приблизно 66,5 тисяч доларів США
Нещодавно в криптовалютному співтоваристві виникло широке обговорення атаки на Poolz. Згідно з даними моніторингу в ланцюзі, атака сталася 15 березня 2023 року, залучаючи кілька ланцюгів, таких як Ethereum, BNB Chain та Polygon. Ця атака призвела до втрати кількох токенів, загальна вартість яких становить близько 665 тисяч доларів.
Зловмисник скористався вразливістю арифметичного переповнення в смарт-контракті Poolz. Зокрема, проблема полягає у функції getArraySum у функції CreateMassPools. Ця функція під час обчислення кількості токенів через проблему переповнення призводить до невідповідності між фактичною кількістю токенів, що надходять, і записаною кількістю.
Процес атаки приблизно такий:
Зловмисник спочатку обміняв деякі токени MNZ на певній децентралізованій біржі.
Потім викликано функцію CreateMassPools. Ця функція повинна дозволити користувачам масово створювати ліквідні пулі та надавати початкову ліквідність.
У процесі CreatePool через проблему переповнення функції getArraySum зловмисник може внести лише 1 токен, але система фіксує значення, яке значно перевищує фактичну кількість.
Нарешті, зловмисник через функцію withdraw витягнув токени, що значно перевищують фактичну суму, яку він вніс, завершивши атаку.
Ця подія ще раз підкреслила важливість арифметичних операцій у смарт-контрактах та потенційні ризики. Щоб уникнути подібних проблем, розробники повинні розглянути можливість використання новіших версій компілятора Solidity, які автоматично виконують перевірку переповнення. Для проектів, які використовують застарілі версії Solidity, рекомендується використовувати бібліотеку SafeMath від OpenZeppelin для обробки цілих чисел, щоб уникнути ризику переповнення.
Ця подія нагадує нам, що безпека завжди повинна бути пріоритетом у розробці блокчейну та смарт-контрактів. Регулярні аудити коду, використання перевірених бібліотек та вжиття комплексних заходів безпеки є критично важливими для захисту активів користувачів та підтримки репутації проєкту.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
5 лайків
Нагородити
5
2
Поділіться
Прокоментувати
0/400
GweiTooHigh
· 10год тому
Знову переповнення. Зараз ще є проекти, які роблять цю примітивну помилку.
Переглянути оригіналвідповісти на0
bridge_anxiety
· 10год тому
Цей старий проект також має вразливості? Важко витримати.
Poolz зазнав атаки переповнення арифметики, втрати 665 тисяч доларів США.
Poolz зазнав атаки внаслідок переповнення арифметичних операцій, збитки приблизно 66,5 тисяч доларів США
Нещодавно в криптовалютному співтоваристві виникло широке обговорення атаки на Poolz. Згідно з даними моніторингу в ланцюзі, атака сталася 15 березня 2023 року, залучаючи кілька ланцюгів, таких як Ethereum, BNB Chain та Polygon. Ця атака призвела до втрати кількох токенів, загальна вартість яких становить близько 665 тисяч доларів.
Зловмисник скористався вразливістю арифметичного переповнення в смарт-контракті Poolz. Зокрема, проблема полягає у функції getArraySum у функції CreateMassPools. Ця функція під час обчислення кількості токенів через проблему переповнення призводить до невідповідності між фактичною кількістю токенів, що надходять, і записаною кількістю.
Процес атаки приблизно такий:
Зловмисник спочатку обміняв деякі токени MNZ на певній децентралізованій біржі.
Потім викликано функцію CreateMassPools. Ця функція повинна дозволити користувачам масово створювати ліквідні пулі та надавати початкову ліквідність.
У процесі CreatePool через проблему переповнення функції getArraySum зловмисник може внести лише 1 токен, але система фіксує значення, яке значно перевищує фактичну кількість.
Нарешті, зловмисник через функцію withdraw витягнув токени, що значно перевищують фактичну суму, яку він вніс, завершивши атаку.
Ця подія ще раз підкреслила важливість арифметичних операцій у смарт-контрактах та потенційні ризики. Щоб уникнути подібних проблем, розробники повинні розглянути можливість використання новіших версій компілятора Solidity, які автоматично виконують перевірку переповнення. Для проектів, які використовують застарілі версії Solidity, рекомендується використовувати бібліотеку SafeMath від OpenZeppelin для обробки цілих чисел, щоб уникнути ризику переповнення.
Ця подія нагадує нам, що безпека завжди повинна бути пріоритетом у розробці блокчейну та смарт-контрактів. Регулярні аудити коду, використання перевірених бібліотек та вжиття комплексних заходів безпеки є критично важливими для захисту активів користувачів та підтримки репутації проєкту.