Ethermint — это библиотека Ethereum. В Ethermint, работающем в версиях до `v0.17.2`, вызов контракта `selfdestruct` навсегда удаляет соотве…
Ethermint — это библиотека Ethereum. В Ethermint, работающем в версиях до `v0.17.2`, вызов контракта `selfdestruct` навсегда удаляет соответствующий байт-код из внутреннего хранилища базы данных. Однако из-за ошибки в функции `DeleteAccount` все контракты, которые использовали идентичный байт-код (т. е. имели одинаковый `CodeHash`), также перестанут работать, как только один контракт вызовет `selfdestruct`, даже если другие контракты не вызывали OPCODE `selfdestruct`. Эта уязвимость была исправлена в Ethermint версии v0.18.0. Исправление содержит изменения в конечном автомате для приложений, использующих Ethermint, поэтому требуется скоординированная процедура обновления. Обходной путь доступен. Если контракт подвержен DoS из-за этой проблемы, пользователь может повторно развернуть тот же контракт, т. е. с идентичным байт-кодом, чтобы восстановить код исходного контракта. Новое развертывание контракта восстанавливает запись `хеш байт-кода -> байт-код` во внутреннем состоянии.
Программный продукт раскрывает ресурс в ненадлежащей сфере управления, предоставляя незаслуженный доступ к ресурсу непредусмотренным субъектам.
https://cwe.mitre.org/data/definitions/668.html →Открыть в коллекции CWE →