Description
Vyper from 0.1.0b10 before 0.2.3 generates incorrect code for a return statement inside a for loop in an internal function called two or more internal calls deep, producing an invalid jump destination (stack underflow). Affected contracts revert such calls unnecessarily, which in limited circumstances could enable denial of service against public contracts.
Published: 2026-10-21
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Patch
AI Analysis

Impact

A return statement inside a for loop in an internal function that is called two or more internal calls deep causes Vyper to generate incorrect bytecode, resulting in an invalid jump destination and a stack underflow. The error leads to an unnecessary revert of the contract call, preventing the intended action from completing. The primary impact is a denial‑of‑service condition that can be triggered by malicious input to a public contract that relies on the vulnerable Vyper code. The weakness corresponds to CWE 670, reflecting improper consistency checks in the compiler.

Affected Systems

The vulnerability affects Vyper versions 0.1.0b10 through 0.2.2. All contracts compiled with those Vyper releases and that call a vulnerable internal function deep within nested calls are affected. The issue is present in codebases that use libraries or inherit from other contracts where the offending return statement exists in a for loop. Vendors building decentralized applications on top of Vyper must verify the compiler version and the presence of such constructs.

Risk and Exploitability

The CVSS score of 6.3 classifies this as a medium‑severity vulnerability. Because the EPSS score is not available, the exploitation likelihood is currently unknown, and the vulnerability is not listed in the CISA KEV catalog. The attack vector is inferred to be “user‑initiated transaction” to a public contract that invokes a vulnerable internal method; a malicious actor could deliberately trigger the revert to cause a denial‑of‑service. The requirement for deep internal calls and a return inside a loop limits the attack surface, making exploitation less straightforward but still possible under the right conditions.

Generated by OpenCVE AI on October 21, 2026 at 11:36 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Vyper to 0.2.3 or newer and recompile all affected contracts
  • Audit compiled bytecode for the existence of return statements inside loops in internal methods
  • If a Vyper upgrade cannot be performed immediately, modify contracts to eliminate nested internal calls that use return statements within loops or replace the returning logic with a Solidity implementation that handles these cases correctly

Generated by OpenCVE AI on October 21, 2026 at 11:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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 from 0.1.0b10 before 0.2.3 generates incorrect code for a return statement inside a for loop in an internal function called two or more internal calls deep, producing an invalid jump destination (stack underflow). Affected contracts revert such calls unnecessarily, which in limited circumstances could enable denial of service against public contracts.
Title Vyper 0.1.0b10 before 0.2.3 Invalid Jump Destination via Return in Nested Loops
First Time appeared Vyperlang
Vyperlang vyper
Weaknesses CWE-670
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:N/A:L'}

cvssV4_0

{'score': 6.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-10-21T15:51:17.564Z

Reserved: 2026-10-20T21:53:15.776Z

Link: CVE-2020-37288

cve-icon Vulnrichment

Updated: 2026-10-21T14:24:52.885Z

cve-icon NVD

Status : Awaiting Analysis

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

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

Link: CVE-2020-37288

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-21T18:30:13Z

Weaknesses
  • CWE-670

    Always-Incorrect Control Flow Implementation