{"id":"CVE-2020-37289","aliases":[],"cve":{"records":[{"id":"CVE-2020-37289","source":"VulnCheck","state":"PUBLISHED","reasons":[],"replacements":[],"disputed":false,"unsupportedWhenAssigned":false,"reserved":"2026-10-20T21:53:41.760Z","published":"2026-10-21T00:36:17.573Z","modified":"2026-10-28T15:45:18.052Z"}],"publishers":[{"name":"VulnCheck","role":"CNA","organizationId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","modified":"2026-10-21T00:36:17.573Z"},{"name":"CISA-ADP","role":"ADP","organizationId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","modified":"2026-10-28T15:45:18.052Z"}],"references":[{"url":"https://github.com/vyperlang/vyper/security/advisories/GHSA-mr6r-mvw4-736g","tags":["vendor-advisory"],"source":"VulnCheck"},{"url":"https://www.vulncheck.com/advisories/vyper-before-0.3.1-improper-input-validation-of-uint8-interface-return-values","tags":["third-party-advisory"],"source":"VulnCheck"}],"weaknesses":[{"id":"CWE-20","description":"Improper Input Validation","source":"VulnCheck"}],"applicability":[{"source":"VulnCheck","statements":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:vyperlang:vyper:*:*:*:*:*:*:*:*","versionEndExcluding":"0.3.1"}]}]}]}],"prioritization":[{"source":"CISA-ADP","type":"SSVC","role":"CISA Coordinator","timestamp":"2026-10-28T15:45:04.773773Z","decisions":[{"name":"Exploitation","value":"none"},{"name":"Automatable","value":"no"},{"name":"Technical Impact","value":"partial"}]}]},"title":"Vyper before 0.3.1 Improper Input Validation of uint8 Interface Return Values","titleSource":"VulnCheck","descriptionSource":"VulnCheck","description":"Vyper before 0.3.1 lacks a uint8 type, allowing interface return values declared as uint8, such as ERC20.decimals(), to be stored in uint256 variables without bounds checking. Malicious contracts can return values greater than 255 to manipulate or bypass contract logic that relies on these values.","score":6.3,"severity":"medium","published":"2026-10-21T00:36:17.573Z","modified":"2026-10-28T15:45:18.052Z","withdrawn":false,"knownExploited":false,"affected":[],"products":[{"vendor":"vyperlang","name":"vyper","platforms":[],"versions":[{"version":"0","status":"affected","lessThan":"0.3.1","versionType":"python"},{"version":"0.3.1","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-37289"}],"remediation":[],"references":["https://github.com/vyperlang/vyper/security/advisories/GHSA-mr6r-mvw4-736g","https://www.vulncheck.com/advisories/vyper-before-0.3.1-improper-input-validation-of-uint8-interface-return-values"],"sources":[{"name":"CVE","id":"CVE-2020-37289","modified":"2026-10-28T15:45:18.052Z","url":"https://www.cve.org/CVERecord?id=CVE-2020-37289"}],"assessments":[{"source":"VulnCheck","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","score":6.3},{"source":"VulnCheck","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","score":3.7}],"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-28T16:00:32.283Z","attemptedAt":"2026-10-28T16:00:32.283Z"},{"source":"GHSA","status":"available","checkedAt":"2026-10-28T16:00:31.947Z","attemptedAt":"2026-10-28T16:00:31.947Z"},{"source":"EUVD","status":"available","checkedAt":"2026-10-28T16:00:31.717Z","attemptedAt":"2026-10-28T16:00:31.717Z"},{"source":"EPSS","status":"available","checkedAt":"2026-10-28T16:00:31.640Z","attemptedAt":"2026-10-28T16:00:31.640Z"}],"evidence":[{"source":"FIRST EPSS","id":"CVE-2020-37289","url":"https://www.first.org/epss/","probability":0.00261,"percentile":0.17915,"date":"2026-10-28","checkedAt":"2026-10-28T16:00:31.640Z"},{"source":"ENISA EUVD","id":"EUVD-2020-31285","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2020-31285","modified":"Oct 28, 2026, 3:45:18 PM","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N","checkedAt":"2026-10-28T16:00:31.717Z"},{"source":"GitHub Advisory Database","id":"GHSA-6j8p-r676-fv69","url":"https://github.com/advisories/GHSA-6j8p-r676-fv69","modified":"2026-10-21T03:32:12Z","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","checkedAt":"2026-10-28T16:00:31.947Z"},{"source":"NVD","id":"CVE-2020-37289","url":"https://nvd.nist.gov/vuln/detail/CVE-2020-37289","modified":"2026-10-22T17:00:33.203","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/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-28T16:00:32.283Z"},{"source":"NVD","id":"CVE-2020-37289","url":"https://nvd.nist.gov/vuln/detail/CVE-2020-37289","modified":"2026-10-22T17:00:33.203","score":3.7,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N","checkedAt":"2026-10-28T16:00:32.283Z"}],"aiSummary":{"text":"Vyper before 0.3.1 lacks input validation for uint8 interface return values, allowing malicious contracts to manipulate contract logic. Affected versions are before 0.3.1. The weakness is improper input validation.","model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","generatedAt":"2026-10-30T09:12:21.078Z","sources":[{"name":"CVE","url":"https://www.cve.org/CVERecord?id=CVE-2020-37289"}]}}