1014 matches found
CVE-2026-114114
The Vyper smart contract programming language (versions 0.1.0b1 before 0.1.0b12, 0.1.0b14, and 0.4.1 through 0.5.0b1) is vulnerable to literal value substitution due to improper handling of Unicode encoding in vyper/ast/parse.py. The root cause is the mixing of character-based line offsets with P...
CVE-2026-114114
Vyper 0.1.0b1 before 0.1.0b12, 0.1.0b14, and 0.4.1 through 0.5.0b1 mix character-based line offsets with Python's UTF-8 byte coloffset values in vyper/ast/parse.py, so multi-byte characters shift the source slices used to reconstruct later numeric literals. An attacker contributing source with...
EUVD-2026-106917
Vyper 0.1.0b1 before 0.1.0b12, 0.1.0b14, and 0.4.1 through 0.5.0b1 mix character-based line offsets with Python's UTF-8 byte coloffset values in vyper/ast/parse.py, so multi-byte characters shift the source slices used to reconstruct later numeric literals. An attacker contributing source with...
CVE-2026-114114 Vyper through 0.5.0b1 Literal Value Substitution via Multi-byte Characters
Vyper 0.1.0b1 before 0.1.0b12, 0.1.0b14, and 0.4.1 through 0.5.0b1 mix character-based line offsets with Python's UTF-8 byte coloffset values in vyper/ast/parse.py, so multi-byte characters shift the source slices used to reconstruct later numeric literals. An attacker contributing source with...
CVE-2021-48020 Vyper before 0.3.0 Memory Corruption via Internal Function Calls in Arrays
Vyper from 0.1.0b4 before 0.3.0 contains a memory corruption vulnerability caused by an incorrect stack tip pointer when internal function calls are performed inside arrays. Contracts placing internal calls in nested array elements, external call arguments, struct literals, or rawlog topics can...
CVE-2021-48020
Vyper versions 0.1.0b4 before 0.3.0 are vulnerable to a memory corruption issue (CWE-787) triggered by an incorrect stack tip pointer . This occurs when internal function calls are performed within arrays . Specifically, contracts that place internal calls in nested array elements, external call ...
CVE-2021-48020
Vyper from 0.1.0b4 before 0.3.0 contains a memory corruption vulnerability caused by an incorrect stack tip pointer when internal function calls are performed inside arrays. Contracts placing internal calls in nested array elements, external call arguments, struct literals, or rawlog topics can...
EUVD-2021-34890
Vyper from 0.1.0b4 before 0.3.0 contains a memory corruption vulnerability caused by an incorrect stack tip pointer when internal function calls are performed inside arrays. Contracts placing internal calls in nested array elements, external call arguments, struct literals, or rawlog topics can...
CVE-2021-48018 Vyper 0.2.13 before 0.2.15 Storage Corruption via @nonreentrant Decorator
Vyper from 0.2.13 before 0.2.15 allocates storage slots for @nonreentrant reentrancy locks at the same locations as contract storage variables. When a function using @nonreentrant is called, setting the lock overwrites the overlapping storage variable, corrupting contract state and breaking the...
CVE-2021-48019 Vyper before 0.2.9 Incorrect RETURNDATASIZE in create_forwarder_to Proxies
Vyper before 0.2.9 deploys forwarder proxies through the built-in createforwarderto 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...
CVE-2021-48019
Vyper before 0.2.9 deploys forwarder proxies through the built-in createforwarderto 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...
CVE-2021-48018
The Vyper compilation tool, versions 0.2.13 through 0.2.14 , is vulnerable to storage corruption due to a flaw in the @nonreentrant decorator. The compiler incorrectly allocates storage slots for reentrancy locks at the same locations as contract storage variables. Consequently, executing a funct...
EUVD-2021-34888
Vyper from 0.2.13 before 0.2.15 allocates storage slots for @nonreentrant reentrancy locks at the same locations as contract storage variables. When a function using @nonreentrant is called, setting the lock overwrites the overlapping storage variable, corrupting contract state and breaking the...
CVE-2021-48019
Vyper versions before 0.2.9 are vulnerable to an issue where the built-in create_forwarder_to function deploys forwarder proxies that report a fixed 4096-byte RETURNDATASIZE instead of the actual return data size. This discrepancy can lead to corrupted data if a function returns more than 4096 by...
EUVD-2021-34889
Vyper before 0.2.9 deploys forwarder proxies through the built-in createforwarderto 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...
CVE-2021-48018
Vyper from 0.2.13 before 0.2.15 allocates storage slots for @nonreentrant reentrancy locks at the same locations as contract storage variables. When a function using @nonreentrant is called, setting the lock overwrites the overlapping storage variable, corrupting contract state and breaking the...
CVE-2020-37289 Vyper before 0.3.1 Improper Input Validation of uint8 Interface Return Values
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...
CVE-2020-37289
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...
CVE-2020-37289
Vyper versions prior to 0.3.1 are vulnerable to improper input validation because the language lacks a native uint8 type. This allows interface return values explicitly declared as uint8 (e.g., ERC20.decimals() ) to be stored in uint256 variables without any bounds checking. Consequently, malicio...
EUVD-2020-31285
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...