CVE-2018-18920
Py-EVM is vulnerable to arbitrary bytecode injection
Py-EVM v0.2.0-alpha.33 allows attackers to make a vm.execute_bytecode call that triggers computation._stack.values with '"stack": [100, 100, 0]' where b'\x' was expected, resulting in an execution failure because of an invalid opcode. This is reportedly related to "smart contracts can be executed indefinitely without gas being paid."
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
8.8
Py-EVM v0.2.0-alpha.33 allows attackers to make a vm.execute_bytecode call that triggers computation._stack.values with '"stack": [100, 100, 0]' where b'\x' was expected, resulting in an execution failure because of an invalid opcode. This is reportedly related to "smart contracts can be executed indefinitely without gas being paid."
- Record
CVE-2018-18920- CVSS 3.0
- 8.8 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - CVSS 2.0
- 6.8 Medium
AV:N/AC:M/Au:N/C:P/I:P/A:P - Weakness
- CWE-119
- Updated
- 2026-11-02
CVE List No score
Py-EVM v0.2.0-alpha.33 allows attackers to make a vm.execute_bytecode call that triggers computation._stack.values with '"stack": [100, 100, 0]' where b'\x' was expected, resulting in an execution failure because of an invalid opcode. This is reportedly related to "smart contracts can be executed indefinitely without gas being paid."
- Record
CVE-2018-18920- Updated
- 2026-11-02
EUVDEUVD-2018-0118 No score
Py-EVM v0.2.0-alpha.33 allows attackers to make a vm.execute_bytecode call that triggers computation._stack.values with '"stack": [100, 100, 0]' where b'\x' was expected, resulting in an execution failure because of an invalid opcode. This is reportedly related to "smart contracts can be executed indefinitely without gas being paid."
- Record
EUVD-2018-0118- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-vqgp-4jgj-5j64
8.7
Py-EVM is vulnerable to arbitrary bytecode injection
Py-EVM v0.2.0-alpha.33 allows attackers to make a vm.execute_bytecode call that triggers computation._stack.values with '"stack": [100, 100, 0]' where b'\x' was expected, resulting in an execution failure because of an invalid opcode. This is reportedly related to "smart contracts can be executed indefinitely without gas being paid."
- Record
GHSA-vqgp-4jgj-5j64- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.0
- 8.8 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-119
- Updated
- 2026-11-02
OSV
8.8
Py-EVM v0.2.0-alpha.33 allows attackers to make a vm.execute_bytecode call that triggers computation._stack.values with '"stack": [100, 100, 0]' where b'\x' was expected, resulting in an execution failure because of an invalid opcode. This is reportedly related to "smart contracts can be executed indefinitely without gas being paid."
- Record
CVE-2018-18920- CVSS 3.0
- 8.8 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-vqgp-4jgj-5j64
8.7
Py-EVM is vulnerable to arbitrary bytecode injection
Py-EVM v0.2.0-alpha.33 allows attackers to make a vm.execute_bytecode call that triggers computation._stack.values with '"stack": [100, 100, 0]' where b'\x' was expected, resulting in an execution failure because of an invalid opcode. This is reportedly related to "smart contracts can be executed indefinitely without gas being paid."
- Record
GHSA-vqgp-4jgj-5j64- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.0
- 8.8 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-119
- Updated
- 2026-11-02
OSVPYSEC-2018-155
8.8
Py-EVM v0.2.0-alpha.33 allows attackers to make a vm.execute_bytecode call that triggers computation._stack.values with '"stack": [100, 100, 0]' where b'\x' was expected, resulting in an execution failure because of an invalid opcode. This is reportedly related to "smart contracts can be executed indefinitely without gas being paid."
- Record
PYSEC-2018-155- CVSS 3.0
- 8.8 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVPYSEC-2018-96 No score
Py-EVM v0.2.0-alpha.33 allows attackers to make a vm.execute_bytecode call that triggers computation._stack.values with '"stack": [100, 100, 0]' where b'\x' was expected, resulting in an execution failure because of an invalid opcode. This is reportedly related to "smart contracts can be executed indefinitely without gas being paid."
- Record
PYSEC-2018-96- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
py-evmPyPI |
through 0.2.0a33 | None known |
py-evmPyPI |
through 0.2.0a33, plus listed versions 0.2.0a10.2.0a100.2.0a110.2.0a120.2.0a13 Show 22 moreShow less0.2.0a140.2.0a150.2.0a160.2.0a170.2.0a180.2.0a190.2.0a200.2.0a210.2.0a220.2.0a240.2.0a250.2.0a260.2.0a280.2.0a290.2.0a30.2.0a300.2.0a310.2.0a320.2.0a50.2.0a70.2.0a80.2.0a9 |
None known |
evm-pyPyPI |
through 0.2.0-alpha\.33 | None known |
py-evmPyPI |
before 0.2.0a33, plus listed versions 0.2.0a10.2.0a100.2.0a110.2.0a120.2.0a13 Show 22 moreShow less0.2.0a140.2.0a150.2.0a160.2.0a170.2.0a180.2.0a190.2.0a200.2.0a210.2.0a220.2.0a240.2.0a250.2.0a260.2.0a280.2.0a290.2.0a30.2.0a300.2.0a310.2.0a320.2.0a50.2.0a70.2.0a80.2.0a9 |
0.2.0a33 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2018-18920 is a high vulnerability (CVSS 8.8) in Ethereum Py-evm, published November 12, 2018. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.93%, the 87th percentile. Fixed in py-evm 0.2.0a33.
References
twitter.com/AlexanderFisher/status/1060923428641878019
github.com/ethereum/py-evm/issues/1448
twitter.com/NettaLab/status/1060889400102383617
reddit.com/r/ethereum/comments/9vkk2g/netta_labs_claim_to_have_found_a_vulnerability_in/e9d3wyx
nvd.nist.gov/vuln/detail/CVE-2018-18920
github.com/advisories/GHSA-vqgp-4jgj-5j64
github.com/pypa/advisory-database/tree/main/vulns/py-evm/PYSEC-2018-96.yaml
github.com/pypa/advisory-database/tree/main/vulns/evm-py/PYSEC-2018-155.yaml
github.com/ethereum/py-evm