{"id":"CVE-2020-37287","aliases":[],"cve":{"records":[{"id":"CVE-2020-37287","source":"VulnCheck","state":"PUBLISHED","reasons":[],"replacements":[],"disputed":false,"unsupportedWhenAssigned":false,"reserved":"2026-10-20T21:52:54.416Z","published":"2026-10-21T00:36:16.257Z","modified":"2026-10-28T15:00:19.800Z"}],"publishers":[{"name":"VulnCheck","role":"CNA","organizationId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","modified":"2026-10-21T00:36:16.257Z"},{"name":"CISA-ADP","role":"ADP","organizationId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","modified":"2026-10-28T15:00:19.800Z"}],"references":[{"url":"https://github.com/vyperlang/vyper/security/advisories/GHSA-4v7v-gqf9-ww2g","tags":["vendor-advisory"],"source":"VulnCheck"},{"url":"https://www.vulncheck.com/advisories/vyper-before-0.2.6-call-stack-corruption-via-complex-type-function-arguments","tags":["third-party-advisory"],"source":"VulnCheck"}],"weaknesses":[{"id":"CWE-131","description":"Incorrect Calculation of Buffer Size","source":"VulnCheck"}],"applicability":[{"source":"VulnCheck","statements":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:vyperlang:vyper:*:*:*:*:*:*:*:*","versionEndExcluding":"0.2.6"}]}]}]}],"prioritization":[{"source":"CISA-ADP","type":"SSVC","role":"CISA Coordinator","timestamp":"2026-10-28T14:59:53.649860Z","decisions":[{"name":"Exploitation","value":"none"},{"name":"Automatable","value":"no"},{"name":"Technical Impact","value":"partial"}]}]},"title":"Vyper before 0.2.6 Call Stack Corruption via Complex Type Function Arguments","titleSource":"VulnCheck","descriptionSource":"VulnCheck","description":"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.","score":8.2,"severity":"high","published":"2026-10-21T00:36:16.257Z","modified":"2026-10-28T15:00:19.800Z","withdrawn":false,"knownExploited":false,"affected":[],"products":[{"vendor":"vyperlang","name":"vyper","platforms":[],"versions":[{"version":"0","status":"affected","lessThan":"0.2.6","versionType":"python"},{"version":"0.2.6","status":"unaffected","versionType":"python"}],"defaultStatus":"unaffected","packageURL":"pkg:pypi/vyper","packageIdentity":{"ecosystem":"PyPI","name":"vyper"},"cpes":[],"source":"VulnCheck","url":"https://www.cve.org/CVERecord?id=CVE-2020-37287"}],"remediation":[],"references":["https://github.com/vyperlang/vyper/security/advisories/GHSA-4v7v-gqf9-ww2g","https://www.vulncheck.com/advisories/vyper-before-0.2.6-call-stack-corruption-via-complex-type-function-arguments"],"sources":[{"name":"CVE","id":"CVE-2020-37287","modified":"2026-10-28T15:00:19.800Z","url":"https://www.cve.org/CVERecord?id=CVE-2020-37287"}],"assessments":[{"source":"VulnCheck","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","score":8.2},{"source":"VulnCheck","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N","score":5.9}],"sourceAffected":[],"observedAt":"2026-10-29T14:05:07.399Z","kev":{"status":"not-listed","checkedAt":"2026-10-31T14:00:31.626Z"},"coverage":[{"source":"NVD","status":"available","checkedAt":"2026-10-28T15:25:36.722Z","attemptedAt":"2026-10-28T15:25:36.722Z"},{"source":"GHSA","status":"available","checkedAt":"2026-10-28T15:25:36.856Z","attemptedAt":"2026-10-28T15:25:36.856Z"},{"source":"EUVD","status":"available","checkedAt":"2026-10-28T15:25:35.787Z","attemptedAt":"2026-10-28T15:25:35.787Z"},{"source":"EPSS","status":"available","checkedAt":"2026-10-28T15:25:36.376Z","attemptedAt":"2026-10-28T15:25:36.376Z"}],"evidence":[{"source":"ENISA EUVD","id":"EUVD-2020-31283","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2020-31283","modified":"Oct 21, 2026, 12:36:16 AM","score":8.2,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","checkedAt":"2026-10-28T15:25:35.787Z"},{"source":"FIRST EPSS","id":"CVE-2020-37287","url":"https://www.first.org/epss/","probability":0.00251,"percentile":0.1659,"date":"2026-10-28","checkedAt":"2026-10-28T15:25:36.376Z"},{"source":"NVD","id":"CVE-2020-37287","url":"https://nvd.nist.gov/vuln/detail/CVE-2020-37287","modified":"2026-10-28T15:17:01.293","score":8.2,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","checkedAt":"2026-10-28T15:25:36.722Z"},{"source":"NVD","id":"CVE-2020-37287","url":"https://nvd.nist.gov/vuln/detail/CVE-2020-37287","modified":"2026-10-28T15:17:01.293","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N","checkedAt":"2026-10-28T15:25:36.722Z"},{"source":"GitHub Advisory Database","id":"GHSA-cqxq-3fq9-6g4p","url":"https://github.com/advisories/GHSA-cqxq-3fq9-6g4p","modified":"2026-10-21T03:32:12Z","score":5.9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N","checkedAt":"2026-10-28T15:25:36.856Z"}],"aiSummary":{"text":"Vyper before 0.2.6 has a call stack corruption vulnerability when passing complex types as function arguments, causing incorrect outputs. This affects contracts using multi-dimensional arrays or structs. The weakness is due to an incorrect calculation of buffer size.","model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","generatedAt":"2026-10-30T08:38:00.001Z","sources":[{"name":"CVE","url":"https://www.cve.org/CVERecord?id=CVE-2020-37287"}]}}