Description
Vyper before 0.2.9 deploys forwarder proxies through the built-in create_forwarder_to function that report a fixed 4096-byte RETURNDATASIZE rather than the actual return data size. Calls through these proxies can yield corrupted data when a function returns more than 4096 bytes without return data sanitation, and fail strict return-size checks such as SafeERC20.safeTransfer.
Published: 2026-10-21
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Data Corruption
Action: Apply Patch
AI Analysis

Impact

Vyper before 0.2.9 contains a flaw in its create_forwarder_to function, where forwarder proxies report a static return data size of 4096 bytes instead of the actual size of the data returned by the proxied function. When a proxied call returns more than 4096 bytes, callers receive truncated or corrupted payloads. The incorrect size flag also triggers failure in libraries that enforce strict return‑size checks such as SafeERC20.safeTransfer, leading to transaction rejection or erratic behavior. The weakness corresponds to buffer access errors (CWE‑805) and data integrity issues (CWE‑130) that affect the reliability of contract calls rather than providing direct execution.

Affected Systems

The vulnerability impacts the Vyper compiler and runtime (vyperlang:vyper). Any Vyper release older than 0.2.9 that uses create_forwarder_to is affected, including all 0.2.x versions prior to 0.2.9.

Risk and Exploitability

The CVSS score of 6.3 indicates moderate severity. Because exploitation requires deploying a vulnerable proxy and invoking a function that returns more than 4096 bytes, the attack vector is bounded to internal contract interactions and there is no evidence of remote exploitation. The EPSS score of < 1% suggests a very low likelihood of public exploitation, and the vulnerability is not listed in CISA KEV. Nevertheless, the risk of data corruption or transaction failures in contracts that rely on strict return‑size checks warrants prompt mitigation.

Generated by OpenCVE AI on November 2, 2026 at 14:32 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Vyper to version 0.2.9 or newer, which fixes the RETURNDATASIZE handling in create_forwarder_to.
  • If an upgrade cannot be immediately applied, refrain from deploying forwarder proxies with create_forwarder_to and instead use alternative proxy approaches that correctly forward return data size.
  • Audit existing contracts that depend on Vyper’s create_forwarder_to, particularly those interacting with libraries that enforce strict return‑size checks, and replace any affected proxies with safe alternatives.

Generated by OpenCVE AI on November 2, 2026 at 14:32 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
Weaknesses CWE-130
References
Metrics threat_severity

None

threat_severity

Moderate


Tue, 27 Oct 2026 23:30: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 before 0.2.9 deploys forwarder proxies through the built-in create_forwarder_to function that report a fixed 4096-byte RETURNDATASIZE rather than the actual return data size. Calls through these proxies can yield corrupted data when a function returns more than 4096 bytes without return data sanitation, and fail strict return-size checks such as SafeERC20.safeTransfer.
Title Vyper before 0.2.9 Incorrect RETURNDATASIZE in create_forwarder_to Proxies
First Time appeared Vyperlang
Vyperlang vyper
Weaknesses CWE-805
CPEs cpe:2.3:a:vyperlang:vyper:*:*:*:*:*:*:*:*
Vendors & Products Vyperlang
Vyperlang vyper
References
Metrics cvssV3_1

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

cvssV4_0

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


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-10-27T21:35:59.282Z

Reserved: 2026-10-20T21:51:44.816Z

Link: CVE-2021-48019

cve-icon Vulnrichment

Updated: 2026-10-27T21:35:54.378Z

cve-icon NVD

Status : Deferred

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

Modified: 2026-10-27T22:17:08.050

Link: CVE-2021-48019

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-21T00:36:18Z

Links: CVE-2021-48019 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-11-02T14:45:18Z

Weaknesses
  • CWE-130

    Improper Handling of Length Parameter Inconsistency

  • CWE-805

    Buffer Access with Incorrect Length Value