CVE-2020-37289
Published:October 21, 2026
Updated:October 21, 2026
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.
Affected Packages
https://github.com/vyperlang/vyper.git (GITHUB):
Affected version(s) >=v0.1.0-beta.1 <v0.3.1Fix Suggestion:
Update to version v0.3.1vyper (PYTHON):
Affected version(s) >=0.1.0b1 <0.3.1Fix Suggestion:
Update to version 0.3.1Related Resources (2)
Do you need more information?
Contact UsCVSS v4
Base Score:
6.3
Attack Vector
NETWORK
Attack Complexity
LOW
Attack Requirements
PRESENT
Privileges Required
NONE
User Interaction
NONE
Vulnerable System Confidentiality
NONE
Vulnerable System Integrity
LOW
Vulnerable System Availability
NONE
Subsequent System Confidentiality
NONE
Subsequent System Integrity
NONE
Subsequent System Availability
NONE
CVSS v3
Base Score:
3.7
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
LOW
Availability
NONE
Weakness Type (CWE)
Improper Input Validation