40 results (0.006 seconds)

CVSS: 7.5EPSS: 0%CPEs: 1EXPL: 0

15 May 2025 — Vyper is the Pythonic Programming Language for the Ethereum Virtual Machine. In versions up to and including 0.4.2rc1, the `slice()` builtin can elide side effects when the output length is 0, and the source bytestring is a builtin (`msg.data` or `

.code`). The reason is that for these source locations, the check that `length >= 1` is skipped. The result is that a 0-length bytestring constructed with slice can be passed to `make_byte_array_copier`, which elides evaluation of its source argument when... • https://github.com/vyperlang/vyper/security/advisories/GHSA-3vcg-j39x-cwfm • CWE-691: Insufficient Control Flow Management •
CVSS: 9.1EPSS: 0%CPEs: 1EXPL: 0

15 May 2025 — Vyper is the Pythonic Programming Language for the Ethereum Virtual Machine. In versions up to and including 0.4.2rc1, `concat()` may skip evaluation of side effects when the length of an argument is zero. This is due to a fastpath in the implementation which skips evaluation of argument expressions when their length is zero. In practice, it would be very unusual in user code to construct zero-length bytestrings using an expression with side-effects, since zero-length bytestrings are typically constructed w... • https://github.com/vyperlang/vyper/security/advisories/GHSA-qhr6-mgqr-mchm • CWE-691: Insufficient Control Flow Management •

CVSS: 7.5EPSS: 0%CPEs: 1EXPL: 0

21 Feb 2025 — vyper is a Pythonic Smart Contract Language for the EVM. Vyper `sqrt()` builtin uses the babylonian method to calculate square roots of decimals. Unfortunately, improper handling of the oscillating final states may lead to sqrt incorrectly returning rounded up results. This issue is being addressed and a fix is expected in version 0.4.1. Users are advised to upgrade as soon as the patched release is available. • https://github.com/vyperlang/vyper/pull/4486 • CWE-682: Incorrect Calculation •

CVSS: 7.5EPSS: 0%CPEs: 1EXPL: 0

21 Feb 2025 — vyper is a Pythonic Smart Contract Language for the EVM. Multiple evaluation of a single expression is possible in the iterator target of a for loop. While the iterator expression cannot produce multiple writes, it can consume side effects produced in the loop body (e.g. read a storage variable updated in the loop body) and thus lead to unexpected program behavior. Specifically, reads in iterators which contain an ifexp (e.g. `for s: uint256 in ([read(), read()] if True else [])`) may interleave reads with ... • https://github.com/vyperlang/vyper/pull/4488 • CWE-662: Improper Synchronization •

CVSS: 9.1EPSS: 0%CPEs: 1EXPL: 0

21 Feb 2025 — vyper is a Pythonic Smart Contract Language for the EVM. Vyper handles AugAssign statements by first caching the target location to avoid double evaluation. However, in the case when target is an access to a DynArray and the rhs modifies the array, the cached target will evaluate first, and the bounds check will not be re-evaluated during the write portion of the statement. This issue has been addressed in version 0.4.1 and all users are advised to upgrade. There are no known workarounds for this vulnerabil... • https://github.com/vyperlang/vyper/security/advisories/GHSA-4w26-8p97-f4jp • CWE-787: Out-of-bounds Write •

CVSS: 7.5EPSS: 0%CPEs: 1EXPL: 0

14 Jan 2025 — Vyper is a Pythonic Smart Contract Language for the EVM. When the Vyper Compiler uses the precompiles EcRecover (0x1) and Identity (0x4), the success flag of the call is not checked. As a consequence an attacker can provide a specific amount of gas to make these calls fail but let the overall execution continue. Then the execution result can be incorrect. Based on EVM's rules, after the failed precompile the remaining code has only 1/64 of the pre-call-gas left (as 63/64 were forwarded and spent). • https://github.com/vyperlang/vyper/security/advisories/GHSA-vgf2-gvx8-xwc3 • CWE-670: Always-Incorrect Control Flow Implementation •

CVSS: 5.3EPSS: 0%CPEs: 1EXPL: 0

25 Apr 2024 — Vyper is a pythonic Smart Contract Language for the Ethereum virtual machine. In versions 0.3.10 and prior, using the `sqrt` builtin can result in double eval vulnerability when the argument has side-effects. It can be seen that the `build_IR` function of the `sqrt` builtin doesn't cache the argument to the stack. As such, it can be evaluated multiple times (instead of retrieving the value from the stack). No vulnerable production contracts were found. • https://github.com/vyperlang/vyper/security/advisories/GHSA-5jrj-52x8-m64h • CWE-95: Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection') •

CVSS: 5.3EPSS: 0%CPEs: 1EXPL: 0

25 Apr 2024 — Vyper is a pythonic Smart Contract Language for the Ethereum virtual machine. Prior to version 0.3.0, default functions don't respect nonreentrancy keys and the lock isn't emitted. No vulnerable production contracts were found. Additionally, using a lock on a `default` function is a very sparsely used pattern. As such, the impact is low. • https://github.com/vyperlang/vyper/commit/93287e5ac184b53b395c907d40701f721daf8177 • CWE-667: Improper Locking •

CVSS: 5.3EPSS: 0%CPEs: 1EXPL: 0

25 Apr 2024 — Vyper is a pythonic Smart Contract Language for the Ethereum virtual machine. In versions 0.3.10 and prior, using the `create_from_blueprint` builtin can result in a double eval vulnerability when `raw_args=True` and the `args` argument has side-effects. It can be seen that the `_build_create_IR` function of the `create_from_blueprint` builtin doesn't cache the mentioned `args` argument to the stack. As such, it can be evaluated multiple times (instead of retrieving the value from the stack). No vulnerable ... • https://github.com/vyperlang/vyper/blob/cedf7087e68e67c7bfbd47ae95dcb16b81ad2e02/vyper/builtins/functions.py#L1847 • CWE-95: Improper Neutralization of Directives in Dynamically Evaluated Code ('Eval Injection') •

CVSS: 5.3EPSS: 0%CPEs: 1EXPL: 0

25 Apr 2024 — Vyper is a pythonic Smart Contract Language for the Ethereum virtual machine. In versions 0.3.10 and prior, using the `slice` builtin can result in a double eval vulnerability when the buffer argument is either `msg.data`, `self.code` or `

.code` and either the `start` or `length` arguments have side-effects. It can be easily triggered only with the versions `<0.3.4` as `0.3.4` introduced the unique symbol fence. No vulnerable production contracts were found. Additionally, double evaluation of side-... • https://github.com/vyperlang/vyper/security/advisories/GHSA-r56x-j438-vw5m • CWE-20: Improper Input Validation •