Poolz зазнав атаки через переповнення арифметики, втрати 665 тисяч доларів США, постраждали багатоланцюгові проекти.

Poolz зазнав атаки арифметичного переповнення, втратили близько 66,5 тисячі доларів

Нещодавно кілька проектів Poolz на різних блокчейн-мережах зазнали атаки, внаслідок чого було вкрадено велику кількість токенів загальною вартістю близько 66,5 тисячі доларів США. Ця атака сталася 15 березня 2023 року і торкнулася контрактів Poolz на кількох мережах, таких як Ethereum, BNB Chain і Polygon.

Зловмисники скористалися вразливістю арифметичного переповнення в смарт-контракті Poolz. Конкретно, проблема полягає в функції getArraySum у функції CreateMassPools. Ця функція під час розрахунку початкової ліквідності пулу через переповнення цілого числа дозволяє зловмисникам створити велику ілюзію ліквідності, переказавши лише невелику кількість токенів.

Poolz зазнав нападу через проблему з переповненням арифметики, збитки приблизно 665K доларів!

Процес атаки виглядає так:

  1. Зловмисник спершу обміняв невелику кількість токенів MNZ на певному DEX.

  2. Потім було викликано вразливу функцію CreateMassPools. Ця функція дозволяє користувачам масово створювати ліквідні пули та надавати початкову ліквідність.

  3. При обчисленні початкової суми ліквідності виникла переповненість цілого числа у функції getArraySum. Сума масиву, переданого зловмисником, перевищує максимальне значення, яке може бути представлене uint256, що призводить до того, що значення, що повертається функцією, стає 1.

  4. Проте контракт все ще використовував початкові значення масиву _StartAmount при запису властивостей пулу. Це призвело до того, що зловмисник фактично перевів лише 1 токен, але був зареєстрований як той, хто має величезну ліквідність.

  5. Нарешті, зловмисник викликає функцію withdraw для виведення коштів, завершуючи атаку.

Poolz зазнав атаки через проблему переповнення чисел, втрата приблизно 665K доларів!

Ця подія виявила небезпеку арифметичного переповнення в смарт-контрактах. Щоб запобігти подібним проблемам, розробники повинні розглянути можливість використання новіших версій компілятора Solidity, які автоматично виконують перевірку на переповнення. Для проектів, що використовують старіші версії Solidity, можна використовувати бібліотеку SafeMath від OpenZeppelin для обробки цілочисельних обчислень, щоб уникнути ризику переповнення.

Poolz постраждав від атаки через переповнення чисел, збитки приблизно 665 тисяч доларів!

Ця атака знову підкреслила необхідність особливої уваги до безпеки арифметичних операцій під час розробки та аудиту смарт-контрактів. Водночас, команда проекту повинна регулярно проводити безпековий аудит, щоб своєчасно виявляти та усувати потенційні вразливості для захисту активів користувачів.

Poolz зазнав атаки через проблему переповнення чисел, збиток приблизно 665K доларів!

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 6
  • Поділіться
Прокоментувати
0/400
OnChainDetectivevip
· 08-05 14:50
помітив цей шаблон атаки раніше... помилка новачка з переповненням цілого числа. коли ж розробники навчаться використовувати safeMath смх
Переглянути оригіналвідповісти на0
AirdropGrandpavip
· 08-05 14:44
Знову переповнення стеку, справжнє лайно.
Переглянути оригіналвідповісти на0
CryptoSurvivorvip
· 08-05 14:42
Ці маленькі дірки можуть бути виявлені, справді, це просто жалюгідно.
Переглянути оригіналвідповісти на0
FrogInTheWellvip
· 08-05 14:38
Знову переповнення... Ви розумієте, що таке аудит безпеки?
Переглянути оригіналвідповісти на0
AlwaysAnonvip
· 08-05 14:36
Ще один проект звалився.
Переглянути оригіналвідповісти на0
HodlTheDoorvip
· 08-05 14:24
Знову не вдалося безкоштовно отримати, і вже закрилися.
Переглянути оригіналвідповісти на0
  • Закріпити