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 ділить атаку на три етапи:
Виклик серйозного дисбалансу через add_liquidity
Зловмисник вніс надзвичайно дисбалансовану ліквідність, вивівши вирішувач пула за межі проєктних параметрів. Це призвело до обнулення внутрішньої змінної (Π), зламавши 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 пропонує такі заходи:
Додати чітку перевірку доменних умов для solver; вважати Π = 0 серйозною помилкою.
Замінити всі небезпечні арифметичні операції на checked math у критичних ділянках.
Вимкнути або обмежити логіку bootstrap після запуску пула.
Жорстко обмежити кількість LP, що випускається, відповідно до реальної вартості внеску.
Розширити тестування із використанням invariant fuzzing, тестувати арифметичні edge cases і порівнювати з off-chain моделями.
Yearn відзначає підтримку ChainSecurity у розслідуванні причин інциденту та SEAL 911 у реагуванні та поверненні активів. Розслідування і відстеження руху викрадених коштів триває.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Yearn Finance розкриває арифметичну помилку, яка призвела до "нескінченного випуску" yETH на суму 9 мільйонів доларів США
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 у реагуванні та поверненні активів. Розслідування і відстеження руху викрадених коштів триває.
Ву Ван Тян