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

robot
Генерація анотацій у процесі

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

Нещодавно безпековий інцидент, що стався з мультиблокчейновим проектом Poolz, привернув увагу галузі. Згідно з даними моніторингу блокчейнів, зловмисники використали вразливість переповнення арифметики в смарт-контракті, успішно вкрали велику кількість токенів з проекту Poolz на мережах Ethereum, BNB Chain та Polygon, загальна вартість яких становить приблизно 66,5 тисячі доларів.

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

Атака сталася близько 3:16 ранку за всесвітнім координованим часом 15 березня 2023 року. Вкрадені активи включають різні ERC-20 токени, такі як MEE, ESNC, DON, ASW, KMON, POOLZ тощо. Зловмисники потім обміняли частину токенів на BNB, але наразі ці кошти ще не були переміщені.

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

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

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

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

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

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

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

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 5
  • Репост
  • Поділіться
Прокоментувати
0/400
TrustMeBrovip
· 08-10 11:16
Ге-гей, це всього лише дрібні гроші, наступний.
Переглянути оригіналвідповісти на0
DeFiAlchemistvip
· 08-10 11:15
*налагоджує містичні діаграми* ще один протокол падає в темну арифметику... числа ніколи не брешуть
Переглянути оригіналвідповісти на0
RooftopReservervip
· 08-10 11:13
Знову найкращий час для лежання на даху.
Переглянути оригіналвідповісти на0
HashBardvip
· 08-10 10:54
сумно... ще один день, ще одна вразливість переповнення
Переглянути оригіналвідповісти на0
DegenGamblervip
· 08-10 10:53
Ще один контракт прошитий тонким папером
Переглянути оригіналвідповісти на0
  • Закріпити