CVE Catalog

CVE-2020-37287

MediumCVSS 5.9
Published: Translated: NVD NIST

Summary

Vyper before 0.2.6 contains a call stack corruption vulnerability that causes incorrect function outputs when complex types with non-base members are passed as arguments. Contracts passing multi-dimensional arrays or structs to internal or external functions receive corrupted values because the compiler assumed each subtype size is 32.

Risk Assessment

Smart contracts may return incorrect values or pass wrong arguments, leading to logic errors and potential losses. Organizations using Vyper with complex data types are exposed to unpredictable contract behavior.

Recommendation

Upgrade the Vyper compiler to version 0.2.6 or later and redeploy affected contracts. Test contracts passing multi-dimensional arrays and structs for output correctness.

Other vulnerabilities in Vyper

See all
Original NVD description (English source)

Vyper before 0.2.6 contains a call stack corruption vulnerability that causes incorrect function outputs when complex types with non-base members are passed as arguments. Contracts passing multi-dimensional arrays or structs to internal or external functions receive corrupted values because the compiler assumed each subtype size is 32.

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