Pectra позволяет хакерам опустошать кошельки с помощью только внецепочной подписи

Последнее обновление сети Ethereum, Pectra, представило мощные новые функции, направленные на улучшение масштабируемости и функциональности смарт-аккаунтов, — но также открыло опасную новую вектор атаки, который может позволить хакерам опустошать средства из кошельков пользователей, используя только внецепочную подпись.

В рамках обновления Pectra, которое вступило в силу 7 мая в эпоху 364032, злоумышленники могут использовать новый тип транзакций, чтобы получить контроль над аккаунтами, управляемыми внешне (EOA), без необходимости от пользователя подписывать транзакцию в цепочке (onchain).

Arda Usman, аудитор смарт-контрактов Solidity, подтвердил Cointelegraph, что «становится возможным для злоумышленника опустошить средства EOA, используя только внецепочное подписанное сообщение (без прямой транзакции, подписанной пользователем)».

В центре риска находится EIP-7702, ключевой компонент обновления Pectra. Предложение по улучшению Ethereum представляет транзакцию SetCode (тип 0x04), которая позволяет пользователям делегировать контроль над своим кошельком другому контракту, просто подписав сообщение.

Если злоумышленник получит эту подпись, например, через фишинговый сайт, он сможет перезаписать код кошелька небольшим прокси, перенаправляющим вызовы в свой вредоносный контракт.

«Как только код установлен, — объяснил Usman, — злоумышленник может вызвать этот код, чтобы перевести ETH или токены с аккаунта — и все это без того, чтобы пользователь когда-либо подписывал обычную транзакцию перевода».

Источник: Vladimir S. | Officer's Notes

Кошельки могут быть изменены с помощью внецепочной подписи

Yehor Rudytsia, ончейн-исследователь Hacken, отметил, что этот новый тип транзакций, представленный Pectra, позволяет установить произвольный код на аккаунте пользователя, по сути превращая его кошелек в программируемый смарт-контракт.

«Этот тип транзакции позволяет пользователю установить произвольный код (смарт-контракт), чтобы он мог выполнять операции от имени пользователя», — сказал Rudytsia.

До Pectra кошельки нельзя было изменить без транзакции, подписанной непосредственно пользователем. Теперь простая внецепочная подпись может установить код, который делегирует полный контроль контракту злоумышленника.

«До Pectra пользователям нужно было отправлять транзакцию (не подписывать сообщение), чтобы разрешить перемещение их средств… После Pectra любая операция может быть выполнена из контракта, который пользователь одобрил через SET_CODE», — пояснил Rudytsia.

Угроза реальна и немедленна. «Pectra активирована 7 мая 2025 года. С этого момента любая действительная подпись делегирования подлежит исполнению», — предупредил Usman. Он добавил, что смарт-контракты, полагающиеся на устаревшие предположения, такие как использование tx.origin или базовые проверки только для EOA, особенно уязвимы.

Кошельки и интерфейсы, которые не обнаруживают или не отображают должным образом эти новые типы транзакций, подвергаются наибольшему риску. Rudytsia предупредил, что «кошельки уязвимы, если они не анализируют типы транзакций Ethereum», особенно тип транзакции 0x04.

Он подчеркнул, что механизмы кошельков должны четко отображать запросы делегирования и отмечать любые подозрительные адреса.

Эта новая форма атаки может быть легко выполнена с помощью распространенных внецепочных взаимодействий, таких как фишинговые электронные письма, поддельные DApps или мошенничество в Discord.

«Мы считаем, что это будет наиболее популярный вектор атаки в отношении этих критических изменений, представленных Pectra», — сказал Rudytsia. «С этого момента пользователи должны тщательно проверять, что они собираются подписать».

Источник: Noir

Аппаратные кошельки больше не безопасны

Аппаратные кошельки больше не являются неотъемлемо безопасными, сказал Rudytsia. Он добавил, что аппаратные кошельки с этого момента находятся на том же риске, что и горячие кошельки, с точки зрения подписания вредоносных сообщений. «Если это сделано — все средства исчезнут в мгновение ока».

Есть способы оставаться в безопасности, но они требуют осведомленности. «Пользователи не должны подписывать сообщения, которые они не понимают», — посоветовал Rudytsia. Он также призвал разработчиков кошельков предоставлять четкие предупреждения, когда пользователей просят подписать сообщение делегирования.

Особую осторожность следует проявлять с новыми форматами подписей делегирования, представленными EIP-7702, которые несовместимы с существующими EIP-191 или EIP-712. Эти сообщения часто выглядят как простые 32-байтовые хэши и могут обходить обычные предупреждения кошельков.

«Если сообщение включает ваш nonce аккаунта, вероятно, оно влияет на ваш аккаунт напрямую», — предупредил Usman. «Обычные сообщения для входа или внецепочные обязательства обычно не включают ваш nonce».

Добавляя к риску, EIP-7702 позволяет подписи с chain_id = 0, что означает, что подписанное сообщение может быть воспроизведено на любой Ethereum-совместимой цепочке. «Понимайте, что оно может быть использовано где угодно», — сказал Usman.

Хотя мультиподписные кошельки остаются более безопасными в рамках этого обновления, благодаря требованию нескольких подписей, одноключевые кошельки — аппаратные или любые другие — должны внедрить новые инструменты для анализа подписей и пометки подозрительных действий, чтобы предотвратить возможное использование.

Наряду с EIP-7702, Pectra также включила EIP-7251, который поднял предел валидаторов стейкинга Ethereum с 32 до 2048 ETH, и EIP-7691, который увеличивает количество данных блобов на блок для улучшения масштабируемости уровня 2.