Хакер украл более полумиллиона долларов у MakerDAO через уязвимость в контракте 2020 года

- Злоумышленник вывел 200 $ETH из legacy-контракта MakerDAO на Ethereum.
- Уязвимость позволила ему получить полный контроль над учетной записью контракта в MakerDAO Vat.
- Украденные средства начали поступать в Tornado Cash уже через шесть минут после атаки.
6 октября 2026 года неизвестный злоумышленник воспользовался уязвимостью в устаревшем контракте MakerDAO на Ethereum и похитил 200 $ETH на сумму около $543 000.
#CertiKInsight 🚨 On 6 Oct, a MakerDAO liquidation keeper bot was exploited resulting in a loss of 200 $ETH (~$542k). Read our full analysis here👇 https://t.co/Tak24xRZYs Find all our stats on our CertiK Security Report Dashboard 👇 https://t.co/0s5Uv84lqY
— CertiK Alert (@CertiKAlert) October 7, 2026
Будьте в курсе
движения ваших монет
Алерты, котировки в реальном времени и новости рынка — в одном приложении
4,8 на основе 40 К оценок в App Store и Google Play
Атаку осуществили через 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 млн.