В коде хардфорка Constantinople снова обнаружена уязвимость
В коде хардфорка Constantinople снова обнаружена уязвимость
Подробности
Категория: Новости
Опубликовано: 15 Февраль 2019
Просмотров: 37
Меньше чем за две недели до предполагаемой даты долгожданного обновления сети Ethereum в коде Constantinople найден еще один баг, который может быть использован злоумышленниками для кражи активов.
Уязвимость detected
Разработчик блокчейн-стартапа Indorse Раджив Гопалакришна сообщил о лазейке в коде обновления Constantinople, которая затрагивает часть смарт-контрактов и может привести к краже криптовалютных активов. Баг под названием Create2 позволяет заменить самоуничтожающийся смарт-контракт и изменить указанные в нем правила. С опасениями Гопалакришна согласились несколько участников форума об Ethereum, в том числе разработчик Ethereum Foundation Джейсон Карвер.
«Сейчас можно создать обычный контракт, у которого будет два возможных сценария — это (контракт существует):(обменять токены) и (контракт самоуничтожается):(израсходовать определенный объем газа). После обновления Constantinople сценарии могут быть следующими: (контракт существует):(обменять токены), (контракт самоуничтожается):(израсходовать определенный объем газа), (заменить контракт):(все ERC20-токены, предварительно одобренные для контракта, были украдены)».
Функция Create2 содержится в одном из предложений по улучшению Ethereum (EIP-1014), чья цель — возможность взаимодействовать со смарт-контрактов, который еще не существует в блокчейне. Этот EIP успешно прошел аудит ConsenSys и запланирован для развертывания в основной сети в ходе предстоящего хардфорка Constantinople.
Константинополь и Петербург
25 февраля на блоке № 7,280,000 состоятся два обновления в сети Ethereum — Constantinople и Petersburg.
Напомним, что сперва провести Константинополь планировалось в октябре 2018 года. Но тогда хардфорк был перенесен на более поздний срок в связи с проблемами при активации обновления в тестовой сети Ropsten. В протоколе Constantinople были обнаружены баги, связанные с различием между Ethereum-клиентами Parity и Geth, а также ошибка консенсуса в версии обновления для Parity.
Вторая попытка активировать Constantinople была запланирована на январь 2019 года. Но и она не была выполнена. На этот раз в одном из протоколов улучшения Ethereum (EIP-1283) за нескольо часов от запланированного хардфорка была обнаружена уязвимость, касавшаяся расчета газа, необходимого для выполнения транзакции. Активация уязвимого EIP могла привести к тому, что смарт-контракты были бы подвержены атакам типа Reentrancy, которые уже стали причиной многомиллионной кражи активов из децентрализованной автономной организации The DAO в 2016 году.
Хардфорк Петербург, который запланирован к активации одновременно с Константинополем, как раз призван отключить протокол EIP-1283, в котором были выявлены проблемы с уязвимостью типа Reentrancy.