CVE-2022-35936 json
Ethermint DoS through Unintended Contract Selfdestruct
published 4y ago modified 4mo ago also GHSA-f92v-grc2-w2fg , GO-2022-0760 , EUVD-2022-6548
- cvss
- 8.2
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.5%
- EPSS 1.5% chance of exploitation in 30 days, percentile 73%
- public exploits
- 0
- none known
Summary
Ethermint is an Ethereum library. In Ethermint running versions before `v0.17.2`, the contract `selfdestruct` invocation permanently removes the corresponding bytecode from the internal database storage. However, due to a bug in the `DeleteAccount`function, 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. 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 the `bytecode hash -> bytecode` entry in the internal state.
Patch / fix
- go github.com/evmos/ethermint 0.18.0
- go github.com/evmos/evmos 7.0.0
- go github.com/crypto-org-chain/cronos 0.7.1-rc2
- go github.com/Kava-Labs/kava 0.18.0
- go github.com/evmos/evmos/v7 7.0.0
- go github.com/kava-labs/kava 0.18.0
- evmos ethermint 0.18.0
- kava kava 0.18.0
- evmos evmos 7.0.0
Is CVE-2022-35936 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- last yr.
Exploit prediction
1.47% chance of exploitation in the next 30 days, higher than 73% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- github.com https://github.com/evmos/ethermint/blob/c9d42d667b753147977a725e98ed116c933c76cb/x/evm/keeper/statedb.go#L199-L203 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.2 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H |
| NVD | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L |
| GitHub | 3.1 | 8.2 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | github.com/evmos/ethermint | <0.18.0 |
0.18.0 |
| go | github.com/evmos/evmos | <7.0.0 all versions |
7.0.0 |
| go | github.com/crypto-org-chain/cronos | <0.7.1-rc2 |
0.7.1-rc2 |
| go | github.com/Kava-Labs/kava | <0.18.0 |
0.18.0 |
| go | github.com/evmos/evmos/v2 | all versions |
no fix listed |
| go | github.com/evmos/evmos/v3 | all versions |
no fix listed |
| go | github.com/evmos/evmos/v4 | all versions |
no fix listed |
| go | github.com/evmos/evmos/v5 | all versions |
no fix listed |
| go | github.com/evmos/evmos/v6 | all versions |
no fix listed |
| go | github.com/evmos/evmos/v7 | <7.0.0 |
7.0.0 |
| go | github.com/kava-labs/kava | <0.18.0 |
0.18.0 |
Affected products
- evmos ethermint
Classification
- Weakness
-
- CWE-668 Exposure of Resource to Wrong Sphere
References
-
github.com
/evmos/ethermint/commit/144741832007a26dbe950512acbda4ed95b2a451
web, patch, third-party-advisory
-
github.com
/evmos/ethermint/blob/c9d42d667b753147977a725e98ed116c933c76cb/x/evm/keeper/statedb.go#L199-L203
web, exploit, third-party-advisory
-
github.com
/evmos/ethermint/security/advisories/GHSA-f92v-grc2-w2fg
web, third-party-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2022-35936
advisory
-
github.com
/evmos/ethermint
package
Sources
- CVE List CVE-2022-35936
- GitHub Advisory GHSA-f92v-grc2-w2fg
- NVD CVE-2022-35936
- OSV GO-2022-0760
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.