Хакер украл $543K у MakerDAO через контракт 2020 года

6 октября 2026 года неизвестный злоумышленник воспользовался уязвимостью в устаревшем контракте MakerDAO на Ethereum и похитил 200 ETH на сумму около $543 000.

Атаку осуществили через legacy auction keeper, который хранил залог из ликвидаций MakerDAO в марте 2020 года, известных как «черный четверг». Эксплойт стал возможен из-за отсутствия контроля доступа к одной из функций контракта.

Как произошла атака

По данным анализа инцидента, хакер сначала профинансировал адрес 0,1 ETH через Tornado Cash, а в 06:12 UTC развернул специальный контракт для атаки. Через минуту он совершил транзакцию, которая позволила получить доступ к активам старого keeper-контракта.

Ключевой проблемой стала функция 0x8804d1de в реализации контракта. В отличие от других привилегированных функций, она не проверяла права доступа и позволяла передать произвольному адресу делегацию через MakerDAO Vat.

Схема эксплойта состояла из нескольких этапов:

  • хакер создал адаптерный модуль и передал его адрес в уязвимую функцию keeper;
  • контракт предоставил этому модулю полный контроль над учетной записью keeper в Vat через Vat.hope();
  • после этого keeper вызвал функцию join() модуля, передав выполнение кода злоумышленнику;
  • злоумышленник завершил четыре старых аукциона — №1457, 1458, 1459 и 1460;
  • каждый из них содержал лот на 50 ETH, который keeper выиграл по нулевой ставке еще в марте 2020 года, но так и не рассчитался за него;
  • после завершения аукционов 200 ETH зачислили на счет keeper в Vat, откуда злоумышленник вывел их через полученную делегацию.
  • Таким образом, именно незавершенные позиции из ликвидаций 2020 года сделали старую уязвимость экономически выгодной.

    Средства начали миксовать через шесть минут

    Все 200 ETH поступили злоумышленнику в рамках одной эксплойт-транзакции через минуту после атаки. Уже через шесть минут он осуществил первый перевод в Tornado Cash.

    В целом злоумышленник начал распределять украденные средства на депозиты по 10 ETH. Анализ транзакций показывает, что для этого использовался Tornado Cash router.

    Главной причиной инцидента стало именно отсутствие проверки прав доступа к функции 0x8804d1de. Кроме того, после предоставления делегации контракт не вызывал nope, поэтому переданные полномочия остались активными после завершения операции.

    Напомним, что в 2023 году неизвестный арбитражный бот использовал контракт MakerDAO DssFlash, чтобы получить флеш-кредит на $200 млн в DAI, но после комиссий заработал лишь $3,24. В 2024 году протокол Curio, связанный с экосистемой MakerDAO, подвергся другой атаке из-за уязвимости смарт-контракта: злоумышленник выпустил 1 млрд CGT, а ущерб впоследствии оценили в $16 млн.

    Источник

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    ➤