CVE-2020-37289 Details
Description
Vyper before 0.3.1 lacks a uint8 type, allowing interface return values declared as uint8, such as ERC20.decimals(), to be stored in uint256 variables without bounds checking. Malicious contracts can return values greater than 255 to manipulate or bypass contract logic that relies on these values.
A vulnerability exists in Vyper versions prior to 0.3.1 due to the absence of a uint8 type. This limitation allows interface return values declared as uint8, such as ERC20.decimals(), to be stored in uint256 variables without proper bounds checking. As a result, malicious contracts could return values exceeding 255, potentially disrupting or circumventing contract logic that depends on these values.
Users can upgrade to Vyper version 0.3.1 or later, which includes the uint8 type. For those using earlier versions, it is recommended to manually check that values returned from interfaces specifying uint8 are within the valid range before using them.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Oct 21, 2026CISA-ADP
Assessed Oct 28, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-20 | Improper Input Validation | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| Vyper | < 0.3.1 (semver) |
CPE
Remediation
| |
Change History
2 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Oct 28, 2026 | CVE Modified | CISA-ADP |
| Oct 21, 2026 | New CVE Received | [email protected] |
Volerion