SlowMist: модуль Aave v3 Loop Safe атакован через уязвимость в контроле доступа, похищено 114,09 ETH
Ключевые выводы
- •Злоумышленники похитили около 114,09 ETH (примерно $305 000) из двух мультисигнатурных кошельков Safe, использовав FlashLoopAdapter — модуль Safe, автоматизирующий позиции с кредитным плечом по стратегии лупинга на Aave v3.
- •Первопричиной стал слабый контроль доступа в функциях open() и close() адаптера, полагавшихся на подделываемую проверку isModuleEnabled, которую поддельный контракт Safe всегда мог пройти.
- •Атакующий использовал flash-кредит WETH на Morpho для погашения примерно 1 335 WETH долга по более крупному кошельку, разблокировав около 1 306 weETH обеспечения для вывода; второй кошелек потерял еще 6,4 weETH, оба кошелька имели одного владельца.
- •Основатель и генеральный директор Aave Стани Кулечов заявил, что атакованный код сторонним внешним адаптером, построенным поверх протокола, и не оказал влияния на основные контракты Aave v3.
- •Инцидент отражает повторяющийся характер атак на модули Safe, включая сентябрьскую атаку с участием около 2 900 rsETH и майский вывод около $3 млн из 86 кошельков через SquidRouterModule.

Компания в области блокчейн-безопасности SlowMist выпустила предупреждение после того, как модуль Aave v3 Loop Safe был атакован через уязвимость в контроле доступа, что привело к выводу около 114,09 ETH (примерно $305 000) из двух мультисигнатурных кошельков Safe. Атака, обнаруженная 1 октября службой Defimon Alerts, была направлена на контракт FlashLoopAdapter, но не затронула ядро протокола Aave v3.
SlowMist TI Alert @aave v3 Loop Safe Module Loss: ~114.09 ETH Root Cause: FlashLoopAdapter's open()/close() access control only checks ISafe(msg.sender).isModuleEnabled(address(this)), which is spoofable via a fake Safe that always returns true. Its _swap() then… — SlowMist (@SlowMist_Team) October 2, 2026
FlashLoopAdapter — это модуль Safe, предназначенный для автоматизации открытия и закрытия позиций с кредитным плечом на Aave v3 — стратегии «лупинга», при которой пользователи многократно вносят обеспечение и занимают под него средства для увеличения экспозиции. Модули Safe — это дополнительные контракты, расширяющие функциональность мультисигнатурного кошелька пользовательскими возможностями, такими как автоматическое управление позициями. По данным SlowMist, первопричиной взлома стали механизмы контроля доступа в функциях адаптера open() и close(). Вместо независимой проверки личности вызывающего эти функции лишь проверяли, что ISafe(msg.sender).isModuleEnabled(address(this)) возвращает true. Таким образом, злоумышленник мог развернуть поддельный контракт Safe, запрограммированный всегда возвращать true, что позволяло вредоносному вызывающему пройти проверку.
Затем атакующий использовал функцию модуля _swap(), которая выполняет «сырой» вызов переданного вызывающим маршрутизатора с полностью контролируемыми атакующим calldata. Установив в качестве маршрутизатора адрес кошелька жертвы Safe, а в качестве calldata — execTransactionFromModule — функцию Safe, позволяющую включенному модулю выполнять транзакции, — злоумышленник фактически превратил собственные разрешения адаптера в пульт дистанционного управления кошельками жертв. Поскольку FlashLoopAdapter уже был включен как модуль на обоих атакованных Safe, итоговые вызовы принимались без проблем.
Цепочка атаки не ограничилась простым опустошением доступных балансов. Злоумышленник взял flash-кредит WETH на Morpho — тип необеспеченного кредита, который должен быть погашен в той же транзакции, — и использовал заемные средства для погашения примерно 1 335 WETH долга Aave, принадлежавшего более крупному кошельку с адресом 0xcfedf95a3653a128dfc2e4288758a1a1850d169f.огашение долга разблокировало обеспечение позиции с кредитным плечом, после чего злоумышленник заставил Safe вывести около 1 306 weETH — токена ликвидного рестейкинга — на подконтрольный ему адрес.
Второй кошелек Safe, 0xe3b23e47df7cd85876ac6cb05bdb9d7cd5b28520, потерял через тот же механизм еще 6,4 weETH. Defimon Alerts отметила, что оба кошелька имели одного и того же единственного владельца. После погашения flash-кредита и конвертации части выведенного обеспечения в WETH у злоумышленника осталось около 114,1 ETH. Адрес атакующего был идентифицирован как 0x42c2633438609881cfBAb82414eb9A0c45F9353, а уязвимый контракт находится по адресу 0x16bb8b912da187870c23ec6756bb3fad061283d8.
Ядро Aave v3 не пострадало — случай повторяет прежние инциденты с модулями Safe
This is not Aave v3 contract, it's third party external adapter built on top of Aave, zero effect on Aave v3. — Stani (@StaniKulechov) October 2, 2026
В ответ на инцидент основатель и генеральный директор Aave Стани Кулечов пояснил в публикации, что атакованный код не был частью самого Aave v3, а представлял собой сторонний внешний адаптер, построенный поверх протокола, и не оказал никакого влияния на основные контракты. Ни в одном из предупреждений службы безопасности не было выявлено уязвимостей в Aave v3, который продолжал работать в штатном режиме.
Тем не менее этот взлом подчеркивает повторяющуюся проблему в экосистеме Safe. Поскольку модулям предоставляется право выполнять транзакции от имени кошелька без прохождения стандартной процедуры одобрения владельцем, единственный недостаток в логике аутентификации модуля может раскрыть все находящиеся под его контролем активы — а поскольку мультисигнатурные кошельки Safe являются стандартной частью инфраструктуры DeFi, широко используемой для хранения казначейств протоколов и административных функций, безопасность каждого включенного модуля фактически становится частью периметра самого кошелька. Похожая уязвимость была выявлена в сентябре, когда взлом Ethereum Safe с участием около 2 900 rsETH был связан с недостаточными проверками авторизации в контракте-исполнителе, привязанном к включенному модулю. В мае злоумышленники вывели около $3 млн из 86 кошельков, злоупотребив SquidRouterModule, а пользователей Gnosis Pay отдельно призывали вывести средства после обнаружения уязвимости в его модуля Zodiac delay.