Cronos vulnerable to DoS through unintended Contract Selfdestruct
High severity
GitHub Reviewed
Published
Aug 8, 2022
in
crypto-org-chain/cronos
•
Updated Apr 5, 2023
Package
Affected versions
<= 0.7.0
Patched versions
0.8.0
Description
Published to the GitHub Advisory Database
Aug 11, 2022
Reviewed
Aug 11, 2022
Last updated
Apr 5, 2023
In Cronos nodes running versions before v0.7.0, the contract selfdestruct invocation permanently removes the corresponding bytecode from the internal database storage. However, due to a bug in Ethermint, all contracts that used the identical bytecode (i.e shared the same CodeHash) will also stop working once one contract invokes selfdestruct, even though the other contracts did not invoke the selfdestruct OPCODE. Thanks to the successfully coordinated security vulnerability disclosure, no smart contracts were impacted through the use of this vulnerability. Smart contract states and storage values are not affected by this vulnerability. This problem has been patched in Cronos v0.8.0. The patch has state machine-breaking changes and the required coordinated network upgrade was done on the block height 3982500 on the Cronos mainnet beta network. If a contract is subject to DoS due to this issue, the user can redeploy the same contract, i.e with identical bytecode, so that the original contract's code is recovered.
References