CVE-2022-39354
MEDIUM5.9EPSS 0.24%evm incorrect state transition
Published: 10/25/2022Modified: 11/8/2023
Description
SputnikVM, also called evm, is a Rust implementation of Ethereum Virtual Machine. A custom stateful precompile can use the `is_static` parameter to determine if the call is executed in a static context (via `STATICCALL`), and thus decide if stateful operations should be done. Prior to version 0.36.0, the passed `is_static` parameter was incorrect -- it was only set to `true` if the call came from a direct `STATICCALL` opcode. However, once a static call context is entered, it should stay static. The issue only impacts custom precompiles that actually uses `is_static`. For those affected, the issue can lead to possible incorrect state transitions.
Affected packages (2)
- crates.io/evmfrom 0, < 0.36.0
- crates.io/evm>= 0.0.0-0, < 0.36.0
CVSS scores
| Source | Version | Severity | Vector |
|---|---|---|---|
| osv | CVSS 3.1 | MEDIUM5.9 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N |
References (6)
- ADVISORYhttps://nvd.nist.gov/vuln/detail/CVE-2022-39354
- PATCHhttps://crates.io/crates/evm
- PATCHhttps://github.com/rust-blockchain/evm
- WEBhttps://github.com/rust-blockchain/evm/pull/133
- WEBhttps://github.com/rust-blockchain/evm/security/advisories/GHSA-hhc4-47rh-cr34
- WEBhttps://rustsec.org/advisories/RUSTSEC-2022-0083.html