PatchSiren

PatchSiren cyber security CVE debrief

CVE-2020-37287 vyperlang CVE debrief

AI-assisted PatchSiren debrief based on the supplied source corpus. The CVE record was published on 2026-10-06T15:22:23.000Z and has not been modified since then. This vulnerability affects Vyper versions prior to v0.2.6 and can cause incorrect output due to a stack management issue when passing multi-dimensional arrays as arguments to internal/external functions. Defenders should assess exposure and prioritize updating to v0.2.6 or later. The vulnerability has a high impact on systems using Vyper for smart contracts, particularly those with complex type containing non-base type members as arguments.

Vendor
vyperlang
Product
vyper
CVSS
HIGH 8.2
CISA KEV
Not listed in stored evidence
Original CVE published
2026-10-06
Original CVE updated
2026-10-24
Advisory published
2026-10-06
Advisory updated
2026-10-24

Who should care

Defenders responsible for Vyper deployments should assess exposure and prioritize updating to v0.2.6 or later. This includes operators, platform administrators, vulnerability management teams, and security teams who use Vyper for smart contracts. They should review code for usage of multi-dimensional arrays as function arguments and monitor for potential incorrect output due to stack management issues.

Why it matters

Defenders should prioritize verifying Vyper versions and updating to v0.2.6 or later to prevent potential incorrect output due to stack management issues.

  • Potential incorrect output due to stack management issues
  • Need to verify Vyper versions and update to v0.2.6 or later
  • Review code for usage of multi-dimensional arrays as function arguments

Technical summary

The vulnerability occurs when passing multi-dimensional arrays as arguments to internal/external functions in Vyper, resulting in incorrect output due to a stack management issue. This issue arises from an incorrect assumption about the size of each subtype of an array/struct being 32, which is not always correct. The vulnerability can be exploited by passing complex types containing non-base type members as arguments, leading to potential incorrect output. Defenders should prioritize verifying Vyper versions and updating to v0.2.6 or later.

Defensive priority

Defenders should prioritize verifying Vyper versions and updating to v0.2.6 or later.

Recommended defensive actions

  • Verify Vyper versions and update to v0.2.6 or later
  • Review code for usage of multi-dimensional arrays as function arguments
  • Monitor for potential incorrect output due to stack management issues
  • Confirm whether affected product deployments exist in managed environments and assign an owner for follow-up.
  • Plan vendor-supported updates or mitigations through normal change control where exposure is confirmed.
  • Check relevant monitoring, detection, and logs for exposed assets that need extra review.
  • Track exceptions, retest remediated assets, and close the item only after evidence is documented.

Evidence notes

The source corpus provides details on the vulnerability, including example code and patch information. However, it does not provide information on exploitation or impact. The vulnerability was fixed in #2184 and released as part of v0.2.6. Defenders should verify Vyper versions and review code for usage of multi-dimensional arrays as function arguments.

Sources and references

Verified primary and authoritative sources

  • CVE-2020-37287 CVE Program record

    Publisher, destination, and source semantics verified

    URL: https://www.cve.org/CVERecord?id=CVE-2020-37287

    CVE Program - Official CVE Program record with source-provided CVE metadata.

  • CVE-2020-37287 NVD vulnerability detail

    Publisher, destination, and source semantics verified

    URL: https://nvd.nist.gov/vuln/detail/CVE-2020-37287

    NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.

Supplemental references

  • Vyper: Call stack corruption when passing complex type containing non-base type members as argum

    Unverified legacy reference

    URL: https://storage.googleapis.com/osv-vulnerabilities/PyPI/GHSA-4v7v-gqf9-ww2g.json

    osv_dev

  • Source reference

    Unverified legacy reference

    URL: https://github.com/vyperlang/vyper/security/advisories/GHSA-4v7v-gqf9-ww2g

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/vyperlang/vyper/issues/2183

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/vyperlang/vyper/pull/2184

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/vyperlang/vyper/commit/0be02b7331e8febe79d5a4218829c72e30417a29

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/vyperlang/vyper

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/vyperlang/vyper/releases/tag/v0.2.6

    Supplemental source

Methodology and review provenance

AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.