CVE-2024-21629
CVE-2024-21629 is a medium-severity vulnerability in Evm Project Evm with a CVSS 3.x base score of 5.9. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-703.
Key facts
- Severity: Medium (CVSS 3.x base score 5.9)
- EPSS exploit prediction: 1% (43rd percentile)
- Actively exploited: Not listed in CISA KEV
- EU (EUVD) id: EUVD-2024-0220
- Weakness: CWE-703
- Affected product: Evm Project Evm
- Published:
- Last modified:
Description
Rust EVM is an Ethereum Virtual Machine interpreter. In `rust-evm`, a feature called `record_external_operation` was introduced, allowing library users to record custom gas changes. This feature can have some bogus interactions with the call stack. In particular, during finalization of a `CREATE` or `CREATE2`, in the case that the substack execution happens successfully, `rust-evm` will first commit the substate, and then call `record_external_operation(Write(out_code.len()))`. If `record_external_operation` later fails, this error is returned to the parent call stack, instead of `Succeeded`. Yet, the substate commitment already happened. This causes smart contracts able to commit state changes, when the parent caller contract receives zero address (which usually indicates that the execution has failed). This issue only impacts library users with custom `record_external_operation` that returns errors. The issue is patched in release 0.41.1. No known workarounds are available.
Frequently asked questions
- What is CVE-2024-21629?
- Rust EVM is an Ethereum Virtual Machine interpreter. In `rust-evm`, a feature called `record_external_operation` was introduced, allowing library users to record custom gas changes. This feature can have some bogus interactions with the call stack. In particular, during finalization of a `CREATE` or `CREATE2`, in the case that the substack execution happens successfully, `rust-evm` will first commit the substate, and then call `record_external_operation(Write(out_code.len()))`. If `record_external_operation` later fails, this error is returned to the parent call stack, instead of `Succeeded`. Yet, the substate commitment already happened. This causes smart contracts able to commit state changes, when the parent caller contract receives zero address (which usually indicates that the execution has failed). This issue only impacts library users with custom `record_external_operation` that returns errors. The issue is patched in release 0.41.1. No known workarounds are available.
- How severe is CVE-2024-21629?
- CVE-2024-21629 has a CVSS 3.x base score of 5.9, rated medium severity. It is exploitable over network with high attack complexity, requires no privileges and no user interaction. Impact on confidentiality is none, integrity high, and availability none.
- Is CVE-2024-21629 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 1% (43rd percentile), an estimate of the probability of exploitation in the next 30 days.
- What products are affected by CVE-2024-21629?
- CVE-2024-21629 affects Evm Project Evm. See the affected-products list for the exact vulnerable versions.
- How do I fix CVE-2024-21629?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround.
- Does CVE-2024-21629 have an EU (EUVD) identifier?
- Yes. CVE-2024-21629 is tracked in the ENISA EU Vulnerability Database (EUVD) as EUVD-2024-0220.
- When was CVE-2024-21629 published?
- CVE-2024-21629 was published on 2024-01-02 and last updated on 2026-06-17.
References
- https://github.com/rust-ethereum/evm/blob/release-v041/src/executor/stack/executor.rs#L1012C25-L1012C69
- https://github.com/rust-ethereum/evm/commit/d8991ec727ad0fb64fe9957a3cd307387a6701e4
- https://github.com/rust-ethereum/evm/pull/264
- https://github.com/rust-ethereum/evm/security/advisories/GHSA-27wg-99g8-2v4v
Affected products (1)
- cpe:2.3:a:evm_project:evm:*:*:*:*:*:rust:*:*
More vulnerabilities in Evm Project Evm
- CVE-2021-41153 — High (CVSS 8.7): The evm crate is a pure Rust implementation of Ethereum Virtual Machine. In `evm` crate `< 0.31.0`, `JUMPI` opcode's…
- CVE-2021-29511 — Medium (CVSS 6.5): evm is a pure Rust implementation of Ethereum Virtual Machine. Prior to the patch, when executing specific EVM opcodes…
- CVE-2022-39354 — Medium (CVSS 5.9): SputnikVM, also called evm, is a Rust implementation of Ethereum Virtual Machine. A custom stateful precompile can use…
All CVEs affecting Evm Project Evm →
Other CWE-703 vulnerabilities
- CVE-2025-13026 — Critical (CVSS 9.8): Sandbox escape due to incorrect boundary conditions in the Graphics: WebGPU component. This vulnerability was fixed in…
- CVE-2025-13023 — Critical (CVSS 9.8): Sandbox escape due to incorrect boundary conditions in the Graphics: WebGPU component. This vulnerability was fixed in…
- CVE-2025-13022 — Critical (CVSS 9.8): Incorrect boundary conditions in the Graphics: WebGPU component. This vulnerability was fixed in Firefox 145 and…
- CVE-2025-13021 — Critical (CVSS 9.8): Incorrect boundary conditions in the Graphics: WebGPU component. This vulnerability was fixed in Firefox 145 and…
- CVE-2024-39815 — Critical (CVSS 9.1): Improper check or handling of exceptional conditions vulnerability affecting Vonets industrial wifi bridge relays…
- CVE-2023-45927 — Critical (CVSS 9.1): S-Lang 2.3.2 was discovered to contain an arithmetic exception via the function tt_sprintf().