CVE Catalog

CVE-2020-37289

LowCVSS 3.7
Published: Translated: NVD NIST

Summary

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.

Risk Assessment

May lead to incorrect contract behavior and potential exploitation to bypass safeguards or manipulate logic. Affects contracts using uint8 interfaces.

Recommendation

Upgrade Vyper to version 0.3.1 or later.

Other vulnerabilities in Vyper

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS