01.10.2026 чувачка обчистили на $305к через его же персональный контракт-помощник
Чел держал деньги в двух Safe-кошах и крутил плече на AAVE: кладёшь weETH → берёшь в долг WETH → меняешь WETH обратно на weETH → снова кладёшь → снова берёшь. Заработок стает больше, но и риск вырастает. Доходность растёт, но и риск тоже. Делать это руками — тяжко, поэтому он написал себе софт-помощник и дал ему полный доступ к кошельку — чтобы тот крутил всё сам, без его подписи.
Но как это бывает, "помощник" оказался с дырами:
1)Он не проверяет, кто его зовет. На входе open() контракт спрашивает у msg.sender: "ты ли тот Safe-кошелек?", хакер поднял контракт, который просто врёт true и его пустили как хозяина
2)Внутри он исполнял все команды вслепую: router.call(data) - где адрес и команду задает сам атакующий. Подставив Safe жертвы и команду execTransactionFromModule(вывести всё атакующему) он в дамках
Теперь остается дело за малым:
1)Берет флеш-займ 11537 WETH(на Morpho, комиссии нет) 2)Гасит долг жертвы в размере 1335 WETH на AAVE - залог разблокирован
3)Через ту самую дыру дергает execTransactionFromModule() и выводит себе 1306 weETH (Safe №1) + 6.4 weETH (Safe №2)
4)Делая обмен weETH:WETH - 1:1.104, он возвращает флеш-лоан и забирает свою долю 114 WETH
~$10 газа.
Умение подстраиваться.
Настойчивость.
Результат.
Transaction Attacker Module
Чел держал деньги в двух Safe-кошах и крутил плече на AAVE: кладёшь weETH → берёшь в долг WETH → меняешь WETH обратно на weETH → снова кладёшь → снова берёшь. Заработок стает больше, но и риск вырастает. Доходность растёт, но и риск тоже. Делать это руками — тяжко, поэтому он написал себе софт-помощник и дал ему полный доступ к кошельку — чтобы тот крутил всё сам, без его подписи.
Но как это бывает, "помощник" оказался с дырами:
1)Он не проверяет, кто его зовет. На входе open() контракт спрашивает у msg.sender: "ты ли тот Safe-кошелек?", хакер поднял контракт, который просто врёт true и его пустили как хозяина
2)Внутри он исполнял все команды вслепую: router.call(data) - где адрес и команду задает сам атакующий. Подставив Safe жертвы и команду execTransactionFromModule(вывести всё атакующему) он в дамках
Теперь остается дело за малым:
1)Берет флеш-займ 11537 WETH(на Morpho, комиссии нет) 2)Гасит долг жертвы в размере 1335 WETH на AAVE - залог разблокирован
3)Через ту самую дыру дергает execTransactionFromModule() и выводит себе 1306 weETH (Safe №1) + 6.4 weETH (Safe №2)
4)Делая обмен weETH:WETH - 1:1.104, он возвращает флеш-лоан и забирает свою долю 114 WETH
~$10 газа.
Умение подстраиваться.
Настойчивость.
Результат.
Transaction Attacker Module