1 октября 2026 года один парень был обворован на $305k через собственный персональный контракт помощника.
Он держал средства в двух Safe-мультисигнатурах и крутил плечо на AAVE: депозит weETH —> заимствование WETH —> обмен WETH обратно на weETH —> повторный депозит —> снова заимствование. Доходность растёт, но растёт и риск. Делать это вручную — боль, поэтому он написал себе программного помощника и дал ему полный доступ к кошельку — чтобы он мог автоматически крутить всё без необходимости его подписи.
Но, как всегда, у «помощника» были дыры:
1) Он не проверяет, кто вызывает. В функции open() контракт спрашивает msg.sender: «Вы тот самый кошелёк Safe?» Хакер развернул контракт, который просто всегда возвращает true и его пускают как владельца.
2) Внутри он выполнил все команды вслепую: router.call(data) — где адрес и команда задаются злоумышленником. Заменив Safe жертвы и команду execTransactionFromModule (вывод всего на злоумышленника), он получает контроль.
Тогда всё дело в технике:
1) Берёт flash loan на 11 537 WETH (на Morpho, без комиссий)
2) Погашает долг жертвы 1 335 WETH на AAVE — залог разблокируется
3) Через это точное отверстие запускает execTransactionFromModule() и выводит 1 306 weETH (Safe #1) + 6,4 weETH (Safe #2) себе
4) Обменивает weETH:WETH в соотношении 1:1,104, возвращает кредит flash loan и забирает себе свою долю 114 WETH
~$10 в газ. Адаптивность. Настойчивость. Результат. $ETH
