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

Poolz зазнав атаки переповнення арифметики, втратили приблизно 66.5 тисяч доларів США

Нещодавно платформа Poolz зазнала атаки в мережах Ethereum, Binance Smart Chain та Polygon, в результаті чого було вкрадено велику кількість токенів на загальну суму близько 665 тисяч доларів США. Атака сталася 15 березня 2023 року о 3:16 (UTC).

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

Згідно з моніторингом даних на блокчейні, ця атака була пов'язана з кількома токенами, включаючи MEE, ESNC, DON, ASW, KMON, POOLZ та інші. Зловмисники вже обміняли частину викрадених токенів на BNB, але наразі кошти ще не були переведені.

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

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

Процес атаки наступний:

  1. Зловмисник спочатку обміняв деякі токени MNZ через певний DEX.

  2. Потім викликається функція CreateMassPools, використовуючи вразливість функції getArraySum. Масив _StartAmount, переданий зловмисником, містить надвелике значення, що призводить до переповнення при додаванні.

  3. Оскільки функція CreatePool використовує _StartAmount для запису властивостей пулу, зловмисник фактично переводить лише 1 токен, але система фіксує величезне значення.

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

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

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

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

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

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 5
  • Репост
  • Поділіться
Прокоментувати
0/400
ValidatorVibesvip
· 13год тому
схоже... ще одна атака переповнення. аудити протоколів це насправді управлінський 101 frfr
Переглянути оригіналвідповісти на0
MetaverseVagrantvip
· 13год тому
Знову стало темно, 660 тисяч теж сміють називати хакером
Переглянути оригіналвідповісти на0
IntrovertMetaversevip
· 13год тому
Чому контракт такий поганий?
Переглянути оригіналвідповісти на0
OnChainSleuthvip
· 13год тому
Знову розкрили карти, так?
Переглянути оригіналвідповісти на0
SurvivorshipBiasvip
· 14год тому
Маленька атака виявилася такою жорстокою
Переглянути оригіналвідповісти на0
  • Закріпити