DeFi-протокол Yearn Finance опублікував post-mortem-звіт щодо атаки на yETH, яка сталася минулого тижня, та зазначив, що арифметична помилка у старому пулі stableswap дозволила зловмиснику «чеканити майже необмежену» кількість LP-токенів і вивести близько 9 мільйонів доларів активів. Yearn також підтвердив, що частину вкрадених коштів вдалося повернути.
За даними Yearn, пул yETH weighted stableswap було зламано на блоці 23.914.086 30.11.2025 після серії складних дій, які вивели вирішувач (solver) пула у некоректний стан, що призвело до помилки arithmetic underflow.
Vault v2, v3 та інші продукти не постраждали; збитки зосереджені лише на yETH та пов’язаних інтеграціях.
Зламаний пул — це кастомний stableswap, який агрегує декілька токенів liquid staking (LST), таких як apxETH, sfrxETH, wstETH, cbETH, rETH, ETHx, mETH, wOETH разом із пулом yETH/WETH. До інциденту ці пули містили кошик LST та 298,35 WETH.
Post-mortem ділить атаку на три етапи:
Зловмисник вніс надзвичайно дисбалансовану ліквідність, вивівши вирішувач пула за межі проєктних параметрів. Це призвело до обнулення внутрішньої змінної (Π), зламавши invariant weighted stableswap і дозволивши over-mint великої кількості LP-токенів. 2. Виведення активів через remove_liquidity
Завдяки over-mint LP, зловмисник неодноразово викликав remove_liquidity та суміжні функції, виводячи майже всю ліквідність LST, перекладаючи збитки від некоректної чеканки на ліквідність, що належить протоколу (POL). У результаті внутрішній запас пула знизився до нуля, хоча баланс ERC-20 залишався. 3. Повторне використання «bootstrap»-шляху та створення безкінечної чеканки
Зловмисник знову активував шлях ініціалізації пула, який мав використовуватись лише при першому запуску. Надіславши «dust» конфігурацію, що порушувала доменні умови, вони викликали unsafe_sub та underflow, створивши майже «нескінченну» кількість yETH LP, які потім були використані для виведення всього пулу yETH/ETH на Curve.
Yearn повідомив, що завдяки співпраці з Plume і Dinero вдалося повернути 857,49 pxETH; транзакція повернення відбулася 1.12. Ці кошти будуть розподілені пропорційно між депозиторами yETH згідно з балансом на момент експлуатації.
Близько 1.000 ETH, що були вкрадені, було закинуто у Tornado Cash у ніч інциденту, решту також перевели через Tornado 5.12. The Block до цього повідомляв, що приблизно 3 мільйони доларів ETH було відправлено у mixer одразу після атаки.
Yearn підкреслює, що yETH працює на принципах самоуправління відповідно до YIP-72 із застереженням «Use at Own Risk», і команда Yearn або спільнота YFI не несуть відповідальності за відшкодування. Усі повернуті активи будуть передані постраждалим користувачам.
Щоб запобігти подібним інцидентам, Yearn пропонує такі заходи:
Yearn відзначає підтримку ChainSecurity у розслідуванні причин інциденту та SEAL 911 у реагуванні та поверненні активів. Розслідування і відстеження руху викрадених коштів триває.
Ву Ван Тян