
1 июля 2026 года злоумышленник взял кредит в Edel Finance под залог токена, который на самом деле стоил в 155 раз меньше, чем показывала система. Цену залога никто не проверял снаружи — протокол считал её сам, и именно это стало фатальной ошибкой.
Введение
Edel Finance — кредитный протокол на Ethereum: пользователи вносят залог (токены) и получают взамен кредит в других активах. Размер кредита зависит от стоимости залога: чем дороже заложенные токены, тем больше можно занять.
Залоговым токеном в данном случае был wGOOGLx — токенизированная акция Google, упакованная в хранилище стандарта ERC-4626. ERC-4626 — это стандарт для хранилищ токенов: вы вносите один актив, получаете «долю» в хранилище, а при выводе получаете обратно актив плюс накопленный доход. Цену этой «доли» и использовал Edel Finance как цену залога — и именно здесь была проблема.
Ход инцидента
1️⃣ Мгновенный кредит. Злоумышленник взял флэш-лоан — кредит без залога, возвращаемый в рамках одной транзакции, — 180 000 USDC через платформу Morpho.
2️⃣ Цикл операций для накрутки цены. Полученные средства были внесены в Edel Finance, после чего злоумышленник многократно повторил цикл: внести токены как залог → занять другие активы → снова внести → снова занять. В одной транзакции подряд зафиксированы многочисленные события Supply (внесение), Borrow (заём), Transfer (перевод), Mint (выпуск новых долей хранилища) и ReserveDataUpdated (обновление данных резерва).
3️⃣ Как росла цена залога. Стоимость wGOOGLx определялась через внутренний коэффициент хранилища ERC-4626 — соотношение базовых активов к количеству выпущенных долей. Серия операций внутри одной транзакции изменяла это соотношение: каждый цикл вносил изменения в числитель и знаменатель формулы. В итоге цена одного wGOOGLx выросла с ~$180 до ~$28 000 — рост в 155 раз.
4️⃣ Заём под завышенный залог. Протокол воспринял эту цену как реальную рыночную. С такой стоимостью залога злоумышленник смог занять активы, многократно превышающие то, что он реально внёс. Из кредитного рынка были выведены 204 000 USDC, а также токенизированные акции: wSPYx (ETF на S&P 500), wQQQx (ETF на Nasdaq), wMSTRx (MicroStrategy), wNVDAx (Nvidia) и wTSLAx (Tesla).
Почему это стало возможным
Edel Finance использовал функцию convertToAssets стандарта ERC-4626 как ценовой оракул — источник информации о стоимости залога. Оракул — это механизм, который сообщает смарт-контракту о ценах из внешнего мира. Надёжный оракул берёт данные с рынка независимо: с бирж, агрегаторов, внешних источников, которые нельзя изменить одной транзакцией.
Здесь оракула как такового не было: цена залога рассчитывалась исключительно на основе внутреннего состояния самого хранилища. А внутреннее состояние хранилища злоумышленник мог изменить серией операций прямо внутри одной транзакции — и именно это он и сделал.
Протокол доверял этому значению как истине, не сверяя его с внешними источниками. В результате манипуляция внутренним коэффициентом автоматически стала манипуляцией ценой залога.
Детали расследования: движение средств
После вывода активов на адрес злоумышленника 0x58428161bB55c14A413945f06cbDeC157F411C76 поступило около $352 тыс. в смешанных активах: USDC, wSPYx, wQQQx, wMSTRx, wNVDAx и wTSLAx.
Все токены были конвертированы через Uniswap — децентрализованную биржу — в 224 ETH и отправлены в миксер Tornado Cash.
На момент расследования средства выведены через миксер, дальнейшее отслеживание существенно затруднено.
Транзакция атаки: 0xe2320086b2815d21b0927839bd0e306466c29a68d38d5361e99dd21ec5472612
Заключение
Атака на Edel Finance — классический пример манипуляции внутренним оракулом. Когда протокол сам считает себе цену залога на основе данных, которые можно изменить изнутри одной транзакции, — это не оракул, а уязвимость.
Залог в реальности стоил $180 за токен. Система «увидела» $28 000. Разницу в 155 раз злоумышленник конвертировал в реальные деньги и вывел в Tornado Cash.
Команда «КоинКит» продолжает мониторинг адресов, связанных с инцидентом.


