Not a U.S. government website. NDD is an independent vulnerability database by Volerion and is not affiliated with or endorsed by NIST or NVD.
VOLERION
Volerion Security Research

NOT DEFERRED DATABASE

VULNERABILITIES

CVE-2020-37289 Details

ANALYZED


This CVE record has been analyzed and enriched by NVDAPI.com as an independent party.

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.

Metrics

References 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-IDCWE NameSource
CWE-20Improper Input Validation[email protected]

Affected Products

ProductVersions
Vyper
< 0.3.1 (semver)

CPE

  • cpe:2.3:a:vyper_project:vyper:*:*:*:*:*:*:*:*

Remediation

  • Upgrade: 0.3.1moderate effort
  • Mitigation:low effort

    Verify that the value returned by any interface that specifies a uint8 type is within the range of a uint8 integer (0-255). For example: ```python ... # returns uint8, but we implicitly cast to uint256 without checking decimals: uint256 = ERC20(_token).decimal() # FIX: Insert this line assert decimals < 256 ... ```

Change History

2 change records found show changes


QUICK INFO

CVE Dictionary Entry:
CVE-2020-37289
NVD Published Date:
Oct 21, 2026
NVD Last Modified:
Oct 28, 2026
Source:
[email protected]
CVE-2020-37289 Details - Not Deferred