Always-Incorrect Control Flow Implementation Affecting vyper package, versions [0,]
Threat Intelligence
Do your applications use this vulnerable package?
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applications- Snyk ID SNYK-PYTHON-VYPER-5880665
- published 5 Sep 2023
- disclosed 4 Sep 2023
- credit trocher
Introduced: 4 Sep 2023
CVE-2023-40015 Open this link in a new tabHow to fix?
There is no fixed version for vyper
.
Overview
vyper is a Pythonic Smart Contract Language for the EVM.
Affected versions of this package are vulnerable to Always-Incorrect Control Flow Implementation when the unsafe_add, unsafe_sub, unsafe_mul, unsafe_div, pow_mod256, |, &, ^ (bitwise operators), bitwise_or (deprecated), bitwise_and (deprecated), bitwise_xor (deprecated), raw_call, <, >, <=, >=, ==, !=, in, not in (when lhs and rhs are enums)
expressions are evaluated. An attacker can cause incorrect control flow by exploiting the right-to-left evaluation of arguments.
Note:
This is only exploitable if one of the arguments produces side effects that other arguments depend on. The following expressions can produce side-effect: state modifying external call , state modifying internal call, raw_call
, pop()
when used on a Dynamic Array stored in the storage, create_minimal_proxy_to
, create_copy_of
, create_from_blueprint
.
Mitigation: This vulnerability can be mitigated by ensuring that the arguments of the expression do not produce side effects or, if one does, that no other argument is dependent on those side effects.