CVE-2023-31146

Vyper vulnerable to OOB DynArray access when array is on both LHS and RHS of an assignment

Published May 11, 2023 CVSS 3.1 · 7.5 High EPSS 1.3% KEV · Not listed
Description
Vyper is a Pythonic smart contract language for the Ethereum virtual machine. Prior to version 0.3.8, during codegen, the length word of a dynarray is written before the data, which can result in out-of-bounds array access in the case where the dynarray is on both the lhs and rhs of an assignment. The issue can cause data corruption across call frames. The expected behavior is to revert due to out-of-bounds array access. Version 0.3.8 contains a patch for this issue.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
EUVD EUVD EUVD-2023-0270 Vyper is a Pythonic smart contract language for the Ethereum virtual machine. Prior to version 0.3.8, during codegen, the length word of a dynarray is written before the data, which can result in out-of-bounds array access in the case where the dynarray is on both the lhs and rhs of an assignment. The issue can cause data corruption across call frames. The expected behavior is to revert due to out-of-bounds array access. Version 0.3.8 contains a patch for this issue.
Github GHSA Github GHSA GHSA-3p37-3636-q8wv Vyper vulnerable to OOB DynArray access when array is on both LHS and RHS of an assignment
History
Type Values Removed Values Added
Metrics ssvc

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

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jan 24, 2025, 4:02 PM
Reserved
Apr 24, 2023, 9:44 PM
Status
Modified
Published
May 11, 2023, 9:15 PM
Modified
Jun 17, 2026, 5:56 AM