Float Protocol зазнав атаки флеш-кредитом на $28K через маніпуляції з Uniswap V3

ETH
UNI
контракти Hypervisorманіпулювання цінамизавищення часток LPатака флеш-позикиUniswap V3SlowMist
2 години томуДжерело: crypto.news
Float Protocol зазнав атаки флеш-кредитом на $28K через маніпуляції з Uniswap V3

Float Protocol втратив близько 28 000 доларів, або 10,71 ETH, після того, як зловмисник використав флеш-позику для маніпулювання спотовою ціною Uniswap V3 та експлуатації того, як його контракти Hypervisor розраховували вартість часток постачальників ліквідності.

Підсумок

  • Float Protocol втратив близько 28 000 доларів, або 10,71 ETH, після атаки з флеш-позикою, яка маніпулювала спотовою ціною Uniswap V3.
  • SlowMist заявив, що маніпуляція призвела до того, що уражені контракти Hypervisor розраховували завищені вартості часток LP.
  • Зловмисник використовував великі свопи, щоб спотворити currentTick() та getTotalAmounts(), а потім неодноразово вносив і виводив кошти на основі неправильних значень.
  • SlowMist заявив, що критичні функції не мали перевірки TWAP або оракула та захисту від прослизання.

SlowMist повідомив 31 серпня, що зловмисник спотворив спотову ціну slot0 Uniswap V3, що призвело до того, що уражені контракти Hypervisor розраховували неправильні вартості часток LP. Фірма з блокчейн-безпеки простежила експлойт до функцій, які не мали перевірки TWAP або оракула та захисту від прослизання.

Використовуючи великі свопи в базовому пулі ліквідності V3, зловмисник маніпулював значеннями, які повертаються currentTick() та getTotalAmounts(). SlowMist заявив, що зловмисник потім неодноразово вносив і виводив кошти, поки контракти Hypervisor працювали із завищеними вартостями часток.

Фірма з безпеки ідентифікувала адресу зловмисника як 0xaea29218262dc6b0904ca077f6527c49dfd426d9, а контракт атаки як 0xb46655eb5b77de277063a75586d1883e951b6c54.

Два вразливі контракти були вказані як 0x85cbed523459b7f6f81c11e710df969703a8a70c та 0xc86b1e7fa86834cac1468937cdd53ba3ccbc1153, тоді як базовий пул ліквідності був ідентифікований як 0xe8c2036068fc3b0161ee1def0e8d01df4eac0ac.

Експлойт Float Protocol покладався на маніпуляцію спотовою ціною Uniswap V3

Атака була зосереджена на тому, як уражені контракти отримували інформацію про ціни з базового пулу Uniswap V3. SlowMist заявив, що великі угоди дозволили зловмиснику спотворити slot0, який містить поточну ціну та інформацію про тік пулу.

Після того, як ціна пулу була змінена, маніпуляція змінила значення, які повертаються currentTick() та getTotalAmounts(). Уражені контракти Hypervisor використовували змінені дані для розрахунку вартості часток LP, що дозволило зловмиснику взаємодіяти з контрактами, поки ці частки були неправильно оцінені.

Флеш-позики надали тимчасовий капітал, необхідний для здійснення великих угод. Як раніше пояснював crypto.news, флеш-позика дозволяє позичати активи без попередньої застави, якщо позика та комісії погашаються в межах тієї ж транзакції блокчейну.

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

У своєму аналізі Float Protocol SlowMist пояснив втрату тим, що контракти покладалися на маніпульовану спотову ціну без перевірок, які могли б звірити її із середньозваженою ціною за часом або іншим оракулом. Критичні функції також не мали захисту від прослизання, за словами фірми з безпеки.

Зловмисник неодноразово використовував завищені вартості часток LP

SlowMist заявив, що зловмисник не зупинився після зміни ціни пулу Uniswap V3. Після того, як slot0 було спотворено, зловмисник неодноразово вносив і виводив кошти з уражених контрактів, використовуючи завищені розрахунки часток LP.

Ця послідовність дозволила витягти вартість, поки контракти покладалися на маніпульований стан пулу. SlowMist оцінив остаточні втрати приблизно в 10,71 ETH, що становило близько 28 000 доларів на момент публікації попередження.

Подібні методи використовувалися в інших атаках на DeFi, де великі тимчасові угоди спотворюють ціни або співвідношення пулів, перш ніж інший контракт використовує маніпульовані значення.

У липні Allbridge Core було зупинено після того, як зловмисник використав флеш-позику USDC на 1,12 мільйона доларів від Kamino під час експлойту, який PeckShield оцінив приблизно в 1,65 мільйона доларів збитків.

Onchain Lens повідомив, що зловмисник Allbridge здійснював швидкі обміни USDC та USDT, щоб змінити співвідношення в пулі стейблкоїнів. Потім зловмисник виводив ліквідність за спотвореним курсом, перш ніж погасити флеш-позику в тій же транзакції.

Allbridge повідомив, що деякі пули ліквідності тимчасово залишилися незбалансованими після інциденту, і попросив користувачів, які отримали прибуток від незвичайних цін, розглянути можливість повернення коштів. Протокол призупинив Core, поки слідчі відстежували активи, переміщені з Solana на Ethereum.

Цінові дані залишаються мішенню в атаках на DeFi

Інцидент у липні показав, як маніпульована цінова інформація може бути використана, навіть якщо слабке місце знаходиться поза смарт-контрактами протоколу.

Ostium дійшов висновку, що його експлойт USDC на 23,75 мільйона доларів походив від скомпрометованої оф-чейн інфраструктури. Децентралізований торговий протокол заявив, що зловмисник подав фальшиві звіти про ціну BTC/USD, що дозволило вивести кошти з його OLP-сховища ліквідності.

Ostium заявив, що його смарт-контракти не були джерелом цього порушення. Автоматизований моніторинг виявив атаку, торгівля відновилася 23 липня, і протокол повідомив, що забезпечення користувачів не постраждало.

Інцидент Float Protocol включав інший механізм, описаний SlowMist. Аналіз фірми з безпеки розмістив слабке місце в уражених контрактах Hypervisor, де маніпульовані дані пулу Uniswap V3 могли впливати на розрахунки, що використовуються для оцінки часток LP.

Капітал флеш-позик використовувався в інших атаках цього року. Атака на Swan Treasury у липні використовувала флеш-позику PancakeSwap після того, як скомпрометований оф-чейн ключ підписанта дозволив зловмиснику придбати токени STY з великою знижкою.

Експлойт Swan Treasury спричинив збитки приблизно на 625 000 доларів. Аналіз безпеки виявив, що підроблені підписи претензій і переказів були створені за допомогою скомпрометованого ключа підписанта протоколу, що дозволило придбати приблизно 687 000 STY зі знижкою приблизно в 100 разів, перш ніж продати їх у пул STY/USDT.

Флеш-позика надала капітал для транзакції, тоді як слідчі пояснили основну вразливість витоком ключа підписанта, а не логікою перевірки підписів протоколу.

SlowMist вказує на відсутність перевірок цін у контрактах Float Protocol

Для Float Protocol SlowMist конкретно визначив відсутність перевірки TWAP або оракула як частину шляху атаки.

TWAP використовує спостереження, зібрані протягом періоду, замість того, щоб покладатися лише на ціну, доступну в один момент. Спотові ціни в пулах ліквідності можуть змінюватися, коли достатньо велика угода змінює співвідношення активів, що було механізмом, який, за словами SlowMist, використав зловмисник Float Protocol.

Посібник Crypto.news з флеш-позик описав маніпулювання цінами як один із поширених способів використання тимчасової ліквідності проти вразливого DeFi-додатку. У звіті зазначено, що флеш-позика надає капітал для атаки, тоді як експлуатована слабкість може лежати в цінових оракулах, системах управління або логіці контрактів.

У випадку Float Protocol SlowMist заявив, що великі угоди використовувалися для спотворення значення slot0 пулу Uniswap V3, що, у свою чергу, змінювало currentTick() і getTotalAmounts(). Зловмисник неодноразово вносив і виводив кошти, поки уражені контракти Hypervisor розраховували завищені вартості часток LP, що призвело до збитків приблизно 10,71 ETH.