Description
Vyper 0.3.8 through 0.5.0b1 contains a compiler miscompilation vulnerability in parse_IfExp that reads nested arrays with narrower inner bounds using the wider result type's memory layout. When a ternary selects the narrower array, inner arrays after the first are read at wrong offsets, causing contracts to silently store corrupted values or revert.
Published: 2026-10-21
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: State corruption due to incorrect memory reads in nested arrays
Action: Update Vyper
AI Analysis

Impact

The Vyper compiler miscompilations in parse_IfExp cause nested arrays with narrower bounds to be read using the wider type's memory layout. When a ternary expression selects the narrow array, inner arrays after the first are accessed at incorrect offsets. The result is silent corruption of stored values or unexpected transaction revert. This is a flaw in data type handling (CWE‑843).

Affected Systems

The vulnerability affects the Vyper compiler product from vyperlang:vyper, specifically versions 0.3.8 through 0.5.0b1. Any smart contracts compiled with these releases are at risk; upgrading to a release newer than 0.5.0b1 eliminates the flaw.

Risk and Exploitability

The CVSS score of 6.3 indicates a medium severity. The EPSS probability is less than 1% and it is not listed in the CISA KEV catalog, suggesting a low likelihood of public exploitation. The attacker must compile a malicious contract or manipulate the compiler, so the attack vector is theoretically limited to environments that use the vulnerable compiler. Nonetheless, the potential for subtle state corruption presents a non-trivial risk to contract integrity.

Generated by OpenCVE AI on October 21, 2026 at 15:28 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Vyper to a version newer than 0.5.0b1 that includes the compiler fix.
  • Audit existing contracts for ternary expressions that select arrays of differing bounds and review deployed state for inconsistencies.
  • Implement automated state validation tests after deployment to detect accidental data corruption.

Generated by OpenCVE AI on October 21, 2026 at 15:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 02 Nov 2026 12:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Low


Wed, 21 Oct 2026 17:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 21 Oct 2026 00:45:00 +0000

Type Values Removed Values Added
Description Vyper 0.3.8 through 0.5.0b1 contains a compiler miscompilation vulnerability in parse_IfExp that reads nested arrays with narrower inner bounds using the wider result type's memory layout. When a ternary selects the narrower array, inner arrays after the first are read at wrong offsets, causing contracts to silently store corrupted values or revert.
Title Vyper 0.3.8 through 0.5.0b1 Memory Misread via Ternary Nested Array Selection
First Time appeared Vyperlang
Vyperlang vyper
Weaknesses CWE-843
CPEs cpe:2.3:a:vyperlang:vyper:*:*:*:*:*:*:*:*
Vendors & Products Vyperlang
Vyperlang vyper
References
Metrics cvssV3_1

{'score': 3.7, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N'}

cvssV4_0

{'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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-10-21T15:49:19.495Z

Reserved: 2026-10-20T21:48:58.503Z

Link: CVE-2026-114115

cve-icon Vulnrichment

Updated: 2026-10-21T15:00:00.769Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-21T01:17:37.787

Modified: 2026-10-22T17:39:56.760

Link: CVE-2026-114115

cve-icon Redhat

Severity : Low

Publid Date: 2026-10-21T00:37:13Z

Links: CVE-2026-114115 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T23:30:13Z

Weaknesses
  • CWE-843

    Access of Resource Using Incompatible Type ('Type Confusion')