Bug 2557992 (CVE-2020-37286)

Summary: CVE-2020-37286 vyper: vyper: Memory corruption via nested internal function calls
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedKeywords: Security
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in vyper. An incorrect stack pointer calculation occurs when internal function calls are evaluated within tuples or nested calls, leading to memory corruption in compiled contracts. A remote caller interacting with an affected smart contract can exploit this issue to produce corrupted return values or pass unintended arguments to external calls, compromising the integrity of contract execution.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2565615    
Bug Blocks:    

Description OSIDB Bzimport 2026-10-21 00:58:25 UTC
Vyper from 0.1.0b4 before 0.3.0 contains a memory corruption vulnerability caused by an incorrect stack tip pointer when internal function calls appear inside tuples or nested calls. Contracts using such calls as tuple elements, call arguments, or builtin arguments like concat or ecrecover can return corrupted values or pass wrong arguments to external calls.