GitHub Advisoryadvisory · crates.io
GHSA-pvh2-pj76-4m96 Specification non-compliance in JUMPI
HIGH
Official page ↗
- Aliases
- CVE-2021-41153
- Ecosystem
- crates.io
- Packages
- evm
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N
- Weaknesses
- CWE-670
- Reviewed
- 2021-10-18
Affected packages
• crates.io evm: < 0.31.0 → fixed in 0.31.0
Description
Impact
In `evm` crate `< 0.31.0`, `JUMPI` opcode's condition is checked after the destination validity check. However, according to Geth and OpenEthereum, the condition check should happen before the destination validity check.
Patches
This is a high severity security advisory if you use `evm` crate for Ethereum mainnet. In this case, you should update your library dependency immediately to on or after `0.31.0`.
This is a low severity security advisory if you use `evm` crate in Frontier or in a standalone blockchain, because there's no security exploit possible with this advisory. It is not recommended to update to on or after `0.31.0` until all the normal chain upgrade preparations have been done. If you use Frontier or other `pallet-evm` based Substrate blockchain, please ensure to update your `spec_version` before updating this. For other blockchains, please make sure to follow a hard-fork process before you update this.
Workarounds
If you are dependent on an older version of `evm` and cannot update due to API interface changes, please contact Wei by email ([email protected]), who will be happy to help you to publish patch releases for older `evm` versions.
References
Fix PR: https://github.com/rust-blockchain/evm/pull/67
For more information
If you have any questions or comments about this advisory:
• Open an issue in the `evm` repo.
Special thanks
Special thanks to @rakita for reporting this issue.
Related
Alias · CVE (1)
- CVE-2021-41153 The evm crate is a pure Rust implementation of Ethereum Virtual Machine. vulnerability
Weakness · CWE (1)
- CWE-670 Always-Incorrect Control Flow Implementation weakness