Слепая зона модульных кошельков: разрешения, которые никто больше не проверяет

Один кошелёк Safe потерял 7,7 млн долларов без единой подписи: ошибка была не в ключах, а в авторизованном модуле, который был подключён давно.

Злоумышленнику не понадобились подписи владельцев кошелька

Бот MEV под названием Yoink перехватил средства до того, как их вывел злоумышленник

15 сентября злоумышленник вывел примерно 2.900 rsETH —около 7,7 млн долларов— из кошелька Safe в Ethereum, при этом ни один из его владельцев не подписал ни одной транзакции.

Подпись безопасности Blockaid обнаружила инцидент в режиме реального времени. Прежде чем злоумышленник успел вывести средства, известный бот MEV Yoink выполнил собственную транзакцию в том же блоке и забрал деньги себе.

Этот случай подталкивает к прочтению, выходящему за рамки суммы похищенного. Вопрос не в том, как злоумышленник получил доступ, а в том, почему кошелёк, рассчитанный на несколько подписей, в итоге выполнил операцию, которую не одобрил ни один владелец. Ответ заставляет заново осмыслить, что на самом деле значит «быть в безопасности».

Мультиподписной кошелёк Safe по дизайну требует, чтобы определённое минимальное число владельцев одобрило каждую операцию. Но Safe позволяет добавлять «модули»: внешние контракты, которым предоставляется постоянное разрешение выполнять определённые действия, не проходя каждый раз через процесс подписи. Это всё равно что передать доверенному провайдеру ключ, который открывает конкретную дверь в доме без ограничения по времени, чтобы не приходилось лично открывать её каждый раз, когда кто-то приходит.

В данном случае в кошельке был включён модуль смарт-контракта — контракт «Multicall»— для управления позициями ликвидности в Uniswap v4. У этого контракта была ошибка проверки авторизации: он считал легитимной любую команду, которая «указывала назад» на его собственный адрес.

Именно эта уязвимость превратила доверительный компонент в открытую дверь

#news $BTC $ZEC $SPCXB