5 марта активация хардфорка Pectra на тестнете Sepolia столкнулась с серьезными проблемами из-за уязвимости, использованной злоумышленником. Разработчик Ethereum Мариус ван дер Вейден рассказал, что после развертывания обновления клиент Geth начал генерировать пустые блоки, что вызвало неправильное генерирование события депозитным контрактом. Причиной сбоя стала тестовая транзакция, отправленная для проверки снятия средств.
Разработчики оперативно создали патч, который был развернут через три с половиной часа, однако проблемы продолжились, и блоки снова стали пустыми. Программисты обнаружили, что атакующий использовал пограничный случай, упущенный ими ранее. В стандарт ERC-20 заложена возможность отправки нулевых переводов, даже если на счете нет токенов, что позволило злоумышленнику вызвать сбой.
После этого команда Ethereum заподозрила, что злоумышленник может следить за их чатом, и решила провести обновление без огласки. Частное исправление было развернуто на 10% нод сети, что позволило восстановить работу тестнета.
По словам ван дер Вейдена, эта проблема касалась только тестнета Sepolia, так как в нем используется депозитный контракт с токен-замком, в отличие от основной сети Ethereum. Инцидент не привел к потере финализации, и команда продолжила скоординированное исправление. Хардфорк Pectra планируется в мейннете Ethereum на начало апреля.
Источник