x/vulndb: potential Go vuln in github.com/evmos/ethermint: CVE-2022-35936 #760
Labels
excluded: EFFECTIVELY_PRIVATE
This vulnerability exists in a package can be imported, but isn't meant to be outside that module.
CVE-2022-35936 references github.com/evmos/ethermint, which may be a Go module.
Description:
Ethermint is an Ethereum library. In Ethermint running versions before
v0.17.2
, the contractselfdestruct
invocation permanently removes the corresponding bytecode from the internal database storage. However, due to a bug in theDeleteAccount
function, all contracts that used the identical bytecode (i.e shared the sameCodeHash
) will also stop working once one contract invokesselfdestruct
, even though the other contracts did not invoke theselfdestruct
OPCODE. This vulnerability has been patched in Ethermint version v0.18.0. The patch has state machine-breaking changes for applications using Ethermint, so a coordinated upgrade procedure is required. A workaround is available. 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. The new contract deployment restores thebytecode hash -> bytecode
entry in the internal state.Links:
See doc/triage.md for instructions on how to triage this report.
The text was updated successfully, but these errors were encountered: