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.