IT SBIT Services
Schneeberger
DEEN
CVE tracker

Vyper: Call stack corruption with complex type function arguments

CVE-2020-37287High 8.2

← All vulnerabilities

Summary

Vyper, a smart contract compiler for Ethereum-compatible blockchains, contains a call stack corruption bug. Contracts that pass multi-dimensional arrays or structs to internal or external functions receive incorrect values, because the compiler assumed each subtype has a size of 32 bytes. An attacker can not directly exploit this, but affected contract logic may return or store wrong data.

Affected

  • Vyper versions before 0.2.6
  • Smart contracts compiled with these versions that pass multi-dimensional arrays or structs between functions

Fixed in

  • Vyper 0.2.6 (released 2020)

Workaround

Unknown.

Exploitation

  • Not known to be exploited in the wild; not listed in CISA KEV
  • No separate public proof of concept found; the upstream advisory includes a minimal reproduction

Our recommendation

  • Check whether Vyper is used in your development or by contractors, and which version
  • Check lockfiles and build pipelines for vyper below 0.2.6
  • Upgrade to Vyper 0.2.6 or later and recompile affected contracts
  • Assess affected contracts with developers and plan redeployment or migration where possible
  • Monitor NVD and the GitHub advisory for updates, as the NVD entry is still Deferred and scores differ between sources

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 15:22.

Original description (NVD)

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.

NVD references (2)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.