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.
Metrics
Affected Vendors & Products
Advisories
No advisories yet.
Fixes
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
References
History
Wed, 21 Oct 2026 00:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| 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. | |
| Title | Vyper before 0.3.1 Improper Input Validation of uint8 Interface Return Values | |
| First Time appeared |
Vyperlang
Vyperlang vyper |
|
| Weaknesses | CWE-20 | |
| CPEs | cpe:2.3:a:vyperlang:vyper:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Vyperlang
Vyperlang vyper |
|
| References |
| |
| Metrics |
cvssV3_1
|
Projects
Sign in to view the affected projects.
Status: PUBLISHED
Assigner: VulnCheck
Published:
Updated: 2026-10-21T00:36:17.573Z
Reserved: 2026-10-20T21:53:41.760Z
Link: CVE-2020-37289
No data.
Status : Received
Published: 2026-10-21T01:17:18.830
Modified: 2026-10-21T01:17:18.830
Link: CVE-2020-37289
No data.
OpenCVE Enrichment
No data.
Weaknesses