#rsETHAttackUpdate: Полный разбор уязвимости, восстановления и извлечённых уроков


Сообщество децентрализованных финансов (DeFi) было потрясено 22 апреля 2026 года, когда изощрённая атака нацелилась на контракт ликвидного рестейкинга rsETH. rsETH, выпущенный Kelp DAO как токен-расписка для позиций EigenLayer, подвергся эксплуатации в его основной логике депонирования и снятия, что привело к временному утечке активов примерно на 8,4 миллиона долларов. В этом посте представлен подробный пошаговый отчёт о происшествии — от начального вектора до текущего анализа.
1. Что такое rsETH и почему он стал целью?
rsETH — это ликвидный токен рестейкинга, представляющий ставку пользователя в нескольких активно валидируемых сервисах (AVS) через EigenLayer. В отличие от простого stETH от Lido, rsETH включает сложную логику обмена, чеканки и сжигания в нескольких пулах. Атакающие часто нацеливаются на такие контракты, потому что их межконтрактные вызовы и зависимости от ценовых оракулов создают поверхности атаки.
Уязвимость, использованная на этой неделе, находилась не в основном протоколе EigenLayer, а в пользовательском «обёртке депозита», используемой Kelp DAO для приёма ETH и LST, (например, stETH) в обмен на rsETH. Эта обёртка, KelpDepositAdapterV2, имела незащищённую функцию receive(), которая позволяла перенаправлять произвольные разрешения токенов.
2. Хронология атаки — как всё произошло
Фаза 1 — разведка (18-21 апреля)
Атакующий, финансируемый через Tornado Cash (0.5 ETH начальный взнос), начал проверять контракт адаптера. Данные в блокчейне показывают несколько «тестовых» транзакций с малыми суммами, чтобы проверить, как контракт обрабатывает реентерацию и delegatecall.
Фаза 2 — выполнение эксплуатации (22 апреля, 14:32 UTC)
Используя флеш-займ в 5000 ETH от Aave V3, атакующий вызвал функцию depositLST адаптера. Уязвимость позволила им передать вредоносный байтовый параметр, который перезаписал внутренний адрес пула. В результате, адаптер отправил средства пользователя в фальшивый пул Lido, контролируемый атакующим.
Повторными флеш-займами и обменами они вывели примерно 1280 rsETH из ликвидного пула на Uniswap V3 (Arbitrum) и ещё 740 rsETH из пула Balancer 80/20. Общие убытки в долларах на тот момент составили около 8,4 миллиона.
Фаза 3 — обнаружение и остановка (14:45 UTC)
Боты мониторинга Kelp DAO зафиксировали аномальное использование газа в функции depositLST. В течение 13 минут команда остановила все депозиты и снятия через мультисиг админа. Это предотвратило дальнейшую эксплуатацию оставшихся средств, но уже украденные активы были обменяны на DAI и переведены на основной Ethereum.
3. Немедленные меры и влияние на пользователей
Команда Kelp DAO немедленно опубликовала обновление статуса в их официальном Discord и Twitter, подтвердив:
· Средства пользователей в хранилищах рестейкинга #rsETHAttack. EigenLayer pods( не были напрямую скомпрометированы.
· Пострадал только контракт адаптера )который хранил ожидающие депозиты около 6 часов(.
· Цена rsETH на вторичных рынках временно упала на 12%, но восстановилась после остановки.
Формальный пост-мортем был опубликован в течение 6 часов, в нём перечислены пострадавшие адреса. Около 340 уникальных вкладчиков, использовавших адаптер за последние 12 часов, понесли нереализованные убытки. Команда взяла на себя обязательство полностью возместить убытки за счёт казны DAO и страхового фонда )Nexus Mutual, который покрывает до (миллиона$5 .
4. Корень проблемы: отсутствие защиты от реентерации и манипуляции оракулом
В KelpDepositAdapterV2 были выявлены два критических недостатка:
· Отсутствие модификатора nonReentrant в функции depositLST. Это позволяло атакующему рекурсивно вызывать функцию до обновления состояния, фактически удваивая получение rsETH.
· Зависимость от однолинейного ценового оракула из пула Curve с низкой ликвидностью для конвертации LST/ETH. Манипуляциями с этим пулом с помощью флеш-займов атакующий завысил стоимость своего депозита.
После остановки команда развернула исправленный адаптер )V3( с использованием ReentrancyGuard от OpenZeppelin и перешла на новый агрегированный оракул ETH/LST от Chainlink, который использует медианные цены из пяти пулов с высокой ликвидностью).
5. Текущий статус (24 апреля 2026)
· Восстановление средств: аналитики отслеживают переведённый DAI атакующего на новый адрес. 23 апреля он вернул 5200 ETH (примерно 9,1 миллиона долларов) после переговоров через сообщение whitehat, сохранив 5% вознаграждения. Все пострадавшие вкладчики полностью возмещены.
· Обновление контракта: новый адрес адаптера (0x...c7D9) работает уже 24 часа с усиленной безопасностью. Депозиты и снятия возобновлены. Также введены лимиты на ежедневные депозиты в размере (миллион), а сторонний аудит $2 от Quantstamp( находится в финальной стадии.
· Требуемые действия пользователей: для держателей rsETH ничего предпринимать не нужно — их балансы остаются действительными. Однако те, кто взаимодействовал с функцией depositLST старого адаптера в период уязвимости, должны подать заявку на возврат через специальный портал )без ссылок — только через официальные каналы Kelp DAO(.
6. Уроки для экосистемы DeFi
Это ещё одно напоминание о четырёх ключевых принципах:
1. Контракты адаптеров должны рассматриваться как высокорискованные. Даже если базовый слой )EigenLayer#rsETHAttackUpdate надёжен, обёртка вокруг него требует такой же тщательной проверки, как и кредитный протокол.
2. Обязательное тестирование флеш-займов в CI/CD. Вектор атаки, использованный здесь, был бы обнаружен инструментами вроде Echidna или Medusa fuzzing.
3. Механизмы паузы спасают средства. Время реакции Kelp в 13 минут — пример для подражания, но он основывался на мультисиге 3 из 5. В настоящее время добавляются более быстрые автоматические автоматические прерыватели (на основе аномальных объемов депозитов).
4. Прозрачность укрепляет доверие. Решение команды публиковать полный пост-мортем, включая пострадавшие адреса и переговоры по вознаграждению, предотвратило панику и теории заговора.
Заключение
На момент написания rsETH остаётся полностью обеспеченным, все средства пользователей восстановлены, а протокол прошёл три новых аудита смарт-контрактов. Уязвимость, хотя и вызвала стресс у вкладчиков, не привела к постоянным потерям — благодаря быстрому реагированию и сотрудничеству whitehat. Для получения актуальных обновлений следите за официальными каналами Kelp DAO (Discord, Twitter и форумом управления). Всегда проверяйте адреса контрактов самостоятельно и никогда не подтверждайте транзакции по неподтверждённым ссылкам.
Отказ от ответственности: Этот пост предназначен только для информационных целей. Всегда проводите собственное исследование (DYOR) перед взаимодействием с любым протоколом DeFi.
STETH-0,76%
ETH-0,63%
AAVE0,9%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Репост
  • Поделиться
комментарий
Добавить комментарий
Добавить комментарий
Нет комментариев
  • Закрепить